Scrapy:将 HTML 提取为元素内的字符串

Scrapy: Extract HTML as string inside Element

我想在 dic 中提取 HTML。例如在这一段 HTML:

<div id="main"><h1><xyz>Title<xyz></h1></div>

我想提取 div 内容:<h1><xyz>Title<xyz></h1> 作为字符串。 CSS o Xpath scrapy 选择器可以吗?

谢谢:)

对于 XPath,使用专用函数 string() :

string(//div[@id='main']/h1/xyz)

输出:"Title"

编辑:如果您正在寻找"Title",则输出整个路径:

concat(concat("<",name(//*[.="Title"]/parent::*),">"),concat("<",name(//*[.="Title"]),">"),string(//*[.="Title"]),concat("</",name(//*[.="Title"]),">"),concat("</",name(//*[.="Title"]/parent::*),">"))

输出:<H1><XYZ>Title</XYZ></H1>

无法使用 css 选择器解决方案,但使用 xpath 非常简单:

desired_str = selector.xpath("//div[@id='main']").extract()