gpt4 book ai didi

python - 如何获取该页面中每个广告的数据?

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:23 24 4
gpt4 key购买 nike

我正在抓取此页面以获取每个广告的数据:http://www.cars2buy.co.uk/business-car-leasing/Abarth/695C/

这是我在 scrapy shell 中的代码:

scrapy shell "http://www.cars2buy.co.uk/business-car-leasing/Abarth/695C/"
for content in response.xpath('//*[@class="pitem"]/div[1]/div[2]/div[1]'):
print content.xpath('//*[@class="detail"]/p/text()[2]').extract()

但每次迭代只提取 48!分散的输出应该是:

48 months

48 months

48 months

36 months

48 months

48 months

48 months

48 months

48 months

36 months

根据页面上的广告!有什么建议吗?

最佳答案

轻松修复。尝试将 . 添加到第二个 xpath 的前面:

print content.xpath('.//*[@class="detail"]/p/text()[2]').extract()

说明:

/ 开头的 xpath 表示“从文档根目录开始搜索”,而以 . 开头的 xpath 表示“在当前位置开始搜索”。 .所以这非常像浏览文件系统的目录。

因此,如果没有 .,您的 xpath 表达式会提取页面上任何位置的所有匹配元素...并在每次迭代中执行此操作。

更新/添加

当 xpath 表达式用于子元素(scrapy 术语中的“选择器”)时,也会发生这种情况,如本例中的 content

当xpath以/开头时,Scrapy内部保留整个html并从文档根开始。这里详细解释:https://doc.scrapy.org/en/latest/topics/selectors.html#working-with-relative-xpaths

关于python - 如何获取该页面中每个广告的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43699263/

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