Scrapy:将用户代理更改与ip地址更改同步

Scrapy:将用户代理更改与ip地址更改同步,scrapy,user-agent,tor,Scrapy,User Agent,Tor,我正在考虑与Scrapy一起使用Tor和用户代理切换器。这与关于这个主题的其他指南类似。Tor大约每10分钟更改一次ip地址。中间件会根据每个请求更改用户代理 我想将用户代理更改与ip地址更改同步。为了实现这一点,我需要在Scrapy发送请求之前执行一些代码。代码将检查自上次请求以来ip是否已更改,如果已更改,则更改用户代理。如果ip没有改变,它将使用相同的用户代理。我还没有找到在执行周期的正确位置调用此代码的方法 想要进行此更改的原因是,在我正在抓取的站点上,具有不同用户代理的多个请求来自同一

我正在考虑与Scrapy一起使用Tor和用户代理切换器。这与关于这个主题的其他指南类似。Tor大约每10分钟更改一次ip地址。中间件会根据每个请求更改用户代理

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


想要进行此更改的原因是,在我正在抓取的站点上,具有不同用户代理的多个请求来自同一ip地址是不常见的。

您必须使用
下载中间件
,特别声明该方法,因此,您可以在发出实际请求之前处理
请求
对象

在那里,您可以声明与每个请求的代理相关联的
用户代理的dict,请记住,您可以使用
request.meta['proxy']=“host:port”