- 本次使用的是fake-useragent开源库,该库详细内容点这里,我们来看scrapy的流程图:
分析流程图可以看出,request在进入engine前会通过一些中间件;在engine和Downloader之间也有中间件,当request经过他们的处理后就交由Downloader进行下载了,因此我们只要在这层中间件对request进行处理,使其随机添加一个user-agent - 在源码中scrapy的中间件实现了添加user-agent:在scrapy源码downloadermiddlewares有一个useragent
在项目中的middlewares中我们只需要仿照他的方法,然后再将该该中间件注册到settings的Downloadermiddlewares中:
- 配置代理
scrapy中配置代理也是相当简单,在middlewares中对request添加proxies,添加到settings中的Downloadermiddlewares
当然最好是用随机IP代理,可以自己爬取免费IP代理并维护一个IP代理池,或者使用付费代理。 - 插入一点小技巧,由于在scrapy项目中,我们可能会同时使用多个爬虫,比如在原来项目的基础上,我又生成了一个爬虫模板,希望对几个网站同时爬取,但是每个爬虫的settings可能不一样,比如A网站不需要使用cookie,于是我们将COOKIES_ENABLED = False,但是B网站必须要有cookie才能爬取,这是我们只要在爬虫中加入custom_settings = {‘COOKIES_ENABLED’: True}
因此只要该对该爬虫的定制化设置都可以添加到custom_settings中
scrapy爬虫(六)--集成随机user-agent以及使用IP代理
最新推荐文章于 2021-03-05 17:22:24 发布