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()
我想在 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()