我正在抓一个原子进给(xml)。其中一个标签说:
<content type="html">
<p> Some text and stuff </p>
</content>
我也看到了与img和标签相同的html实体。 是否有通用的xpath来查找img标签或p标签,如下所示:
//content/p or //content/img/@src
但显然这不适用于这些html实体。或者也许是scrapy的其他解决方案?
答案 0 :(得分:3)
我认为您需要提取content
文本元素,并使用lxml.html
解析HTML内容
import lxml.etree
import lxml.html
xmlfeed = lxml.etree.fromstring(xmlfeedstring)
for content in xmlfeed.xpath('//content[@type="html"]/text()'):
htmlcontent = lxml.html.fragment_fromstring(content)
paragraphs = htmlcontent.xpath('//p')
image_urls = htmlcontent.xpath('//img/@src')
请参阅lxml文档中的Parsing HTML fragments。