浏览器呈现的URL和Scraped URL是不同的。请解释一下

2024-04-25 19:08:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我对网络抓取、Python和Scrapy还不熟悉。如果我的理解有一些根本性的缺陷,请原谅我。我来自JAVA/R背景。我想刮胡子www.amazon.in书的细节。在使用chrome的XPATH finder之后,我构建了所需的XPATH,但是当我在Scrapy shell中尝试相同的XPATH查询时,会显示不同形式的URL。在

例如,我得到的XPATH finder中的以下XPATH查询//ul[@id='ref_976390031']/li[23]/a[@href]/@href

www.amazon.in/s/ref=lp_976389031_nr_n_21?fst=as%3Aoff&rh=n%3A976389031%2Cn%3A%21976390031%2Cn%3A1318203031&bbn=976390031&ie=UTF8&qid=1418660681&rnid=976390031

但是,当我在scrapy shell的response变量上尝试时,response.xpath("//ul[@id='ref_976390031']/li[23]/a[@href]/@href").extract()

我明白了

http://www.amazon.in/b?ie=UTF8&node=1318203031

更有趣的是,当输入到浏览器中时,被废弃的链接会降落到另一个页面,而不是它应该登陆的页面(同样的行为,也就是说,当链接被废弃时,登录到不同的页面也会发生)

还有一件事我观察到,虽然废弃的链接与浏览器呈现的链接不同,但大多数链接都是正确定向/重定向的,而像这样的一些链接则不然。在

这种行为使我的刮刀刮在一些环节上成功,有些环节根本没有报废。在

对这种行为的任何帮助/解释将不胜感激。提前谢谢。在


Tags: inrefidamazonfinder链接www页面
1条回答
网友
1楼 · 发布于 2024-04-25 19:08:00

Kyle K,warvariuc是对的,该网站为不同的用户代理呈现不同的URL。在

settings.py中添加以下参数修复了此问题

USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"

感谢大家抽出时间回复。在

相关问题 更多 >