【问题标题】:Scrapy: synchronize user-agent change with ip address changeScrapy:将用户代理更改与 IP 地址更改同步
【发布时间】:2015-11-30 01:30:36
【问题描述】:

我正在考虑使用 Tor 和带有 Scrapy 的用户代理切换器 this guide。它类似于该主题的其他指南。 Tor 大约每 10 分钟更改一次 IP 地址。中间件会在每次请求时更改用户代理。

我想将用户代理更改与 IP 地址更改同步。为了实现这一点,我需要在 Scrapy 发送请求之前执行一些代码。该代码将检查自上次请求以来 ip 是否已更改,如果是,则更改用户代理。如果 ip 没有改变,它将使用相同的用户代理。我一直无法找到在执行周期的正确位置调用此代码的方法。

希望进行此更改的原因是,在我正在抓取的网站上,具有不同用户代理的多个请求来自同一 IP 地址是不寻常的。

【问题讨论】:

    标签: scrapy user-agent tor


    【解决方案1】:

    您必须使用Downloader Middleware,专门声明process_request 方法,以便在发出实际请求之前处理Request 对象。

    您可以在此处声明user-agents 的字典与每个请求的代理关联,记住您可以使用request.meta['proxy'] = "host:port" 指定每个请求的代理

    【讨论】:

      猜你喜欢
      • 2018-02-12
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 2019-01-31
      • 2010-09-16
      • 2013-03-16
      • 2015-05-05
      • 2017-01-05
      相关资源
      最近更新 更多