选择Google搜索中的第一个链接

问题描述 投票:0回答:2

当我检查网站(谷歌搜索)时,我可以通过查找器搜索此//div[@class="r"]/a/@href来选择我想要的href。但是当使用scrapy并通过response.xpath('//div[@class="r"]/a/@href'访问时,这将返回空。许多其他Xpath如链接标题也将导致空。奇怪的是,当使用response.xpath('//cite').get()时,我能够得到一些东西,这基本上是href但不完整。

如果我做response.body我能够在代码中看到我想要的href,但我不知道如何访问它。试图通过传统方法选择它,css或xpath可以在任何其他网站上工作,这是徒劳的。

python html web-scraping scrapy
2个回答
2
投票

您使用的xpath在浏览器上工作但在响应中没有的原因是因为如果JS被禁用,Google会以不同的方式显示页面,scrapy而不是浏览器就是这种情况,因此您需要使用XPath这将适用于两者或仅适用于第一种情况。

这个适用于没有JS,但不能在浏览器中工作(如果启用了JS):

//div[@id='ires']//h3/a[1]/@href

这将返回第一个结果的第一个URL。


0
投票

试试下面的内容。

response.xpath("//div[@class='r']").xpath("//a/@href").extract()
© www.soinside.com 2019 - 2024. All rights reserved.