Scrapy重定向到主页以获取一些网址

时间:2015-06-19 16:16:13

标签: scrapy scrapy-shell

我是Scrapy框架的新手。目前使用它从多个'健康& Wellness'网站。对于某些请求,scrapy正在重定向到主页(在浏览器中未观察到此行为)。以下是一个例子:

命令:     scrapy shell“http://www.bornfitness.com/blog/page/10/” 结果:     2015-06-19 21:32:15 + 0530 [scrapy] DEBUG:网络服务收听127.0.0.1:6080     2015-06-19 21:32:15 + 0530 [默认]信息:蜘蛛打开     2015-06-19 21:32:15 + 0530 [默认] DEBUG:重定向(301)到http://www.bornfitness.com/>来自http://www.bornfitness.com/blog/page/10/>     2015-06-19 21:32:16 + 0530 [默认] DEBUG:Crawled(200)http://www.bornfitness.com/> (引用者:无)

请注意,url(10)中的页码是一个两位数字。我没有看到带有单个sigit页码的URL(例如8)的这个问题。 结果:     2015-06-19 21:43:15 + 0530 [默认]信息:蜘蛛打开     2015-06-19 21:43:16 + 0530 [默认] DEBUG:Crawled(200)http://www.bornfitness.com/blog/page/8/> (引用者:无)

1 个答案:

答案 0 :(得分:0)

如果您在使用scrapy复制浏览器行为时遇到问题,通常需要查看当您的浏览器与网站通信时,与您的蜘蛛与网站通信时相比,通信方式有何不同。请记住,网站(几乎总是)不是设计为对网络浏览器好,而是与网络浏览器进行交互。

根据您的情况,如果您查看与scrapy请求一起发送的标题,您应该会看到以下内容:

In [1]: request.headers
Out[1]:
{'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'Accept-Encoding': 'gzip,deflate',
 'Accept-Language': 'en',
 'User-Agent': 'Scrapy/0.24.6 (+http://scrapy.org)'}

如果您检查网页浏览器对同一网页的请求发送的标题,您可能会看到以下内容:

**Request Headers**

GET /blog/page/10/ HTTP/1.1    
Host: www.bornfitness.com    
Connection: keep-alive    
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
DNT: 1    
Referer: http://www.bornfitness.com/blog/page/11/
Accept-Encoding: gzip, deflate, sdch    
Accept-Language: en-US,en;q=0.8
Cookie: fealty_segment_registeronce=1; ... ... ...

尝试更改请求中的User-Agent。这应该可以让您绕过重定向。