我在这里撞墙,可能是我想念的简单东西。
我有一个HTML无序列表(ul),如下所示:
<ul>
<li>Elm 1</li>
<li>Elm 2 - with children
<ul>
<li>Nested Elm</li>
<li>Another Elm</li>
</ul>
</li>
</ul>
使用xpath(与Scrapy兼容的第1版),我如何从所有li元素(包括嵌套元素)中获取文本?
感谢您的帮助!
答案 0 :(得分:2)
如果需要xpath,请使用response.xpath('//ul//li/text()').extract()
。
如果可以使用CSS,它会更短:response.css('ul li::text').extract()
答案 1 :(得分:0)
尝试使用简单的xpath选择器:
from scrapy.selector import Selector
selector = Selector(text="""
<ul>
<li>Elm 1</li>
<li>Elm 2 - with children
<ul>
<li>Nested Elm</li>
<li>Another Elm</li>
</ul>
</li>
</ul>""")
print(selector.xpath('//li/text()').extract())
这将输出:
['Elm 1', 'Elm 2 - with children\n ', 'Nested Elm', 'Another Elm', '\n ']