【问题标题】:Scrapy redirects to homepage for some urlsScrapy 重定向到一些 url 的主页
【发布时间】:2015-06-19 16:16:13
【问题描述】:

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

命令: 刮痧壳“http://www.bornfitness.com/blog/page/10/” 结果: 2015-06-19 21:32:15+0530 [scrapy] 调试:Web 服务监听 127.0.0.1:6080 2015-06-19 21:32:15+0530 [默认] 信息:蜘蛛打开 2015-06-19 21:32:15+0530 [默认] 调试:从 http://www.bornfitness.com/blog/page/10/ 重定向 (301) 到 http://www.bornfitness.com/> > 2015-06-19 21:32:16+0530 [默认] DEBUG: 抓取 (200) http://www.bornfitness.com/> (referer: None)

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

【问题讨论】:

  • 您是否获得了 301 之前 200 成功的页面加载?即——第 8 页是否会将您重定向到第 8 页?

标签: scrapy scrapy-shell


【解决方案1】:

当您在使用 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)'}

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

**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。这应该可以让您绕过重定向。

【讨论】:

  • 谢谢,将 USER_AGENT 从默认的“Scrapy/0.24.6 (+scrapy.org)”更改为“born_fitness”(或其他任何内容)解决了这个问题。知道为什么这只发生在某些 url(/page/10/ 而不是 /page/8/) 以及为什么只发生在 USER_AGENT 'Scrapy/0.24.6 (+scrapy.org)' ?
猜你喜欢
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 2017-05-29
  • 2015-10-01
  • 2013-12-05
  • 1970-01-01
相关资源
最近更新 更多