【问题标题】:how can I prevent the same url return different response?如何防止相同的 url 返回不同的响应?
【发布时间】:2015-12-04 16:17:46
【问题描述】:

现在我正在尝试使用 scrapy 来抓取网站。

我发现给定相同的 url,请求的响应可能不同。 好像是网站的两个版本。我也使用了相同的用户代理。

有没有办法让响应保持一致? 或者我只能分析每个响应的版本,然后使用不同的 XPath 提取项目?

scrapy shell 的 response.headers 是这样的:

{'Cache-Control': 'max-age=0, private, must-revalidate',
 'Content-Type': 'text/html; charset=utf-8',
 'Date': 'Fri, 04 Dec 2015 18:56:59 GMT',
 'Server': 'nginx/1.6.2',
 'Set-Cookie': 'auth_token=hello; domain=www.medhelp.org; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT',
 'X-Rack-Cache': 'miss',
 'X-Request-Id': '70f23a01ac124fd58acc9e9e7bafb609',
 'X-Runtime': '0.150452',
 'X-Ua-Compatible': 'IE=8'}

【问题讨论】:

    标签: web-crawler scrapy scrapy-spider


    【解决方案1】:

    这完全取决于网站,而不是scrapy。在这种情况下可能有用的东西是检查response.headers,特别是Last-Modified 标头,该标头应返回最后一次修改的日期信息。

    【讨论】:

    • 感谢您的建议。现在我有点困惑。 'response.headers' 返回:'{..., 'X-Ua-Compatible': 'IE=8'} ' 但是当我查看响应时,我可以在 'head' 部分看到 '' 而且这个元信息在所有版本的响应中都是一样的。我不知道这是否是问题。
    • 第一个标头与元信息不同,某些网站无法返回该Last-Modified信息。
    • 是的,本站没有Last-Modified信息。
    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多