我期待在本指南中使用Tor和与Scrapy用户代理切换。它类似于该主题上的其他指南。Tor大约每10分钟更改一次IP地址。中间件根据每个请求更改用户代理。
我想将用户代理更改与IP地址更改同步。为此,我需要在Scrapy发送请求之前执行一些代码。该代码将检查自上一个请求以来ip是否已更改,如果已更改,则更改用户代理。如果ip尚未更改,它将使用相同的用户代理。我还没有找到在执行周期中正确位置调用此代码的方法。
希望进行此更改的原因是,在我要抓取的站点上,使用相同的IP地址来自不同用户代理的多个请求是不寻常的。
您必须使用Downloader Middleware
,专门声明该process_request
方法,以便您可以Request
在发出实际请求之前处理该对象。
您可以在此处声明user-agents
与每个请求的代理相关联的字典,请记住,您可以为每个请求指定代理request.meta['proxy'] = "host:port"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句