xpath 嵌套 ul 列表
xpath nested ul list
我在这里用头撞墙,这可能是我遗漏的一些简单的东西。
我有一个 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 元素(包括嵌套元素)中获取文本?
感谢您的帮助!
如果需要 xpath,请使用 response.xpath('//ul//li/text()').extract()
。
如果可以使用css,则更短:response.css('ul li::text').extract()
尝试使用简单的 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 ']
我在这里用头撞墙,这可能是我遗漏的一些简单的东西。
我有一个 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 元素(包括嵌套元素)中获取文本?
感谢您的帮助!
如果需要 xpath,请使用 response.xpath('//ul//li/text()').extract()
。
如果可以使用css,则更短:response.css('ul li::text').extract()
尝试使用简单的 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 ']