mir*_*lol 4 python xpath scrapy
如何检索标记中包含的所有HTML?
hxs = HtmlXPathSelector(response)
element = hxs.select('//span[@class="title"]/')
Run Code Online (Sandbox Code Playgroud)
编辑:如果我查看文档,我只看到返回新的xpathselectorlist的方法,或只返回标记内的原始文本.我想要检索不是新列表或文本,而是检索标记内的源代码HTML.例如:
hxs.select('//span[@class="title"]/html()')
Run Code Online (Sandbox Code Playgroud)
我想做一个像这样的方法XPathSelectorList,shal返回它里面的HTML,像这样:
<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>
Run Code Online (Sandbox Code Playgroud)
我希望我清除了围绕我的问题的模棱两可.
如何从Scrapy中的HtmlXPathSelector获取HTML?(也许解决方案外部scrapy的范围?)
打电话.extract()给你XpathSelectorList.它将返回包含所需HTML内容的unicode字符串列表.
hxs.select('//div[@id="leexample"]/*').extract()
Run Code Online (Sandbox Code Playgroud)
# This is wrong
hxs.select('//div[@id="leexample"]/html()').extract()
Run Code Online (Sandbox Code Playgroud)
/html()不是有效的scrapy选择器.要提取所有孩子,请使用'//div[@id="leexample"]/*'或'//div[@id="leexample"]/node()'.注意,node()会返回textNode,结果类似:
[u'\n ', u'<a href="image1.html">Name: My image 1
' ]