如何检索包含在标记中的所有HTML?
hxs = HtmlXPathSelector(response)
element = hxs.select('//span[@class="title"]/')
可能是这样的:
hxs.select('//span[@class="title"]/html()')
编辑:
如果我查看documentation,我只看到返回新XPathSelectorList
的方法,或者只看到标记中的原始文本。
我不想检索新的列表或只是文本,而是要检索标记中的源代码HTML。
e、 g.:
<html>
<head>
<title></title>
</head>
<body>
<div id="leexample">
justtext
<p class="ihatelookingforfeatures">
sometext
</p>
<p class="yahc">
sometext
</p>
</div>
<div id="lenot">
blabla
</div>
an awfuly long example for this.
</body>
</html>
我想做一个类似hxs.select('//div[@id="leexample"]/html()')
的方法,该方法将返回其中的HTML,如下所示:
justtext
<p class="ihatelookingforfeatures">
sometext
</p>
<p class="yahc">
sometext
</p>
我希望我澄清了我问题的模糊性。
如何从Scrapy中的HtmlXPathSelector
获取HTML?(也许是一个不在斯卡比范围内的解决方案?)
虽然很晚了,我还是把这个留了下来。
我做的是:
或者如果我们想匹配不同的节点:
在
XpathSelectorList
上调用.extract()
。它将返回包含所需HTML内容的unicode字符串列表。更新
/html()
不是有效的scrapy选择器。要提取所有子项,请使用'//div[@id="leexample"]/*'
或'//div[@id="leexample"]/node()'
。注意,node()
将返回textNode
,结果类似于:使用:
这将选择所有节点(元素、文本节点、处理指令和注释),这些节点是XML文档中任何
span
元素的子节点,其class
属性的值为"title"
。如果只想获取文档中第一个此类
span
的子节点,请使用:相关问题 更多 >
编程相关推荐