gpt4 book ai didi

xpath - 使用 xpath 提取 anchor 标记内的文本

转载 作者:行者123 更新时间:2023-12-03 16:15:20 25 4
gpt4 key购买 nike

我试图确定网站上的任何搜索结果有多少页,以便我可以使用 lxml 和 xpath 为所有页面抓取数据。

有一个分页选项卡,结构如下:页码:1 2 3 ... 7 下一页

相同的 html 内容类似

<ul class="ulclass">
<li></li>
<li>
<span> You are on the first page</span>
"1"
</li>
<li>
<a href="link to second page">
<span></span>
"2"
</a>
</li>
<li>
</li>
...
<li>
<a href="link to last page">
<span></span>
"7"
</a>
</li>

我的方法是提取页码 1、2、3、7,这样我就可以为每个页面重复 7 次网络抓取,否则它只会抓取页面的第一个结果。我已经编写了以下 xpath,但它没有返回正确的页码。

xpath('//ul[@class="ulclass"]/li/a/text())

最佳答案

如果我扩展你的例子来形成这个,

<ul class="ulclass">
<li><span>You are on the first page</span>"1"</li>
<li><a href="link to second page"><span></span>"2"</a></li>
<li><a href="link to third page"><span></span>"3"</a></li>
<li><a href="link to fourth page"><span></span>"4"</a></li>
<li><a href="link to fifth page"><span></span>"5"</a></li>
<li><a href="link to sixth page"><span></span>"6"</a></li>
<li><a href="link to last page"><span></span>"7"</a></li>
</ul>

然后在 Python 中使用 scrapy 我可以得到这个:

>>> from scrapy.selector import Selector
>>> selector = Selector(text=open('temp.htm').read())
>>> selector.xpath('..//ul[@class="ulclass"]/li/a/text()').extract()
['"2"', '"3"', '"4"', '"5"', '"6"', '"7"']

关于xpath - 使用 xpath 提取 anchor 标记内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45217129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com