Scrapy重定向到某些URL的主页

Scrapy重定向到某些URL的主页,scrapy,scrapy-shell,Scrapy,Scrapy Shell,我是Scrapy框架的新手,目前正在使用它从多个“健康与健康”网站中提取文章。对于某些请求,scrapy正在重定向到主页(在浏览器中未观察到这种行为)。以下是一个例子: 命令: 刮壳“ 结果: 2015-06-19 21:32:15+0530[scrapy]调试:在127.0.0.1:6080上侦听Web服务 2015-06-19 21:32:15+0530[默认]信息:蜘蛛网已打开 2015-06-19 21:32:15+0530[默认]调试:重定向(301)到http://www.bornf

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

命令: 刮壳“ 结果: 2015-06-19 21:32:15+0530[scrapy]调试:在127.0.0.1:6080上侦听Web服务 2015-06-19 21:32:15+0530[默认]信息:蜘蛛网已打开 2015-06-19 21:32:15+0530[默认]调试:重定向(301)到http://www.bornfitness.com/>从http://www.bornfitness.com/blog/page/10/> 2015-06-19 21:32:16+0530[默认]调试:已爬网(200)http://www.bornfitness.com/>(推荐人:无)

请注意,url(10)中的页码是两位数。我不认为这个问题与单一sigit页码(例如8)的URL有关。 结果: 2015-06-19 21:43:15+0530[默认]信息:蜘蛛网已打开
2015-06-19 21:43:16+0530[默认]调试:爬网(200)http://www.bornfitness.com/blog/page/8/>(referer:None)

当您无法使用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; ... ... ...
如果检查web浏览器对同一页面的请求发送的标题,您可能会看到如下内容:

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; ... ... ...

尝试更改请求中的
用户代理。这应该允许您绕过重定向。

对于成功的页面加载,您是否在200之前获得301?i、 e.--第8页是否将您重定向到第8页?谢谢,将USER_AGENT从默认的“Scrapy/0.24.6(+)”更改为“born_fitness”(或其他)解决了此问题。你知道为什么只有一些URL(/page/10/而不是/page/8/)会发生这种情况吗?为什么只有用户代理“Scrapy/0.24.6(+)”会发生这种情况?