Scrapy:如何获取response.status = 302的页面内容?

时间:2015-05-13 06:50:45

标签: web-scraping scrapy scrape scrapy-spider

抓取时我得到以下日志:

DEBUG: Crawled (302) <GET http://fuyuanxincun.fang.com/xiangqing/> (referer: http://esf.hz.fang.com/housing/151__1_0_0_0_2_0_0/)
DEBUG: Scraped from <302 http://fuyuanxincun.fang.com/xiangqing/>

但它实际上什么也没有回报。 如何使用status = 302来处理这些响应?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

HTTP状态302表示暂时移动。当我对网址http://fuyuanxincun.fang.com/xiangqing/发出HTTP GET请求时,它会显示HTTP 200状态。在发送302状态代码之后服务器不会发送任何内容(尽管技术上可以在302之后发送数据),这是常见的。

您获得HTTP 302状态的原因可能是以下之一:

  1. 当特定的引用者(如:http://esf.hz.fang.com/housing/151__1_0_0_0_2_0_0/)出现时,该网站不提供其内容。
  2. 您没有发送服务器想要查看的HTTP标头。例如,像某个用户代理。通过发送HTTP 302状态而不是HTTP 200状态,网站可以决定拒绝没有特定标头的请求。
  3. 您尝试发送请求的特定IP地址被您尝试收集的网站排除在外。
  4. 我建议:

    1. 让请求看起来像&#34;真实&#34;浏览器请求(传达similair标题)。
    2. 尝试从其他IP地址发送请求。
    3. 尝试使用(随机)用户代理发送请求。
    4. 我在2015年5月13日星期三07:30:29的时间做了请求,网站的行为可能会在您和我的请求之间的时间内发生变化。

      发布完整的RAW HTTP请求和响应也很有帮助。