一种在scrapy请求中改变用户代理的中间件
Scrapy-UserAgents的Python项目详细描述
概述
scrapy是一个很好的web爬行框架。这个下载中间件 根据settings.py、spider和 请求。
要求
- 在Python2.7和Python3.5上进行测试,但它应该在其他更高版本上工作 然后是python 3.3
- 在Linux上测试,但它是一个纯Python模块,应该在其他 支持官方python的平台,如windows、mac osx、bsd
安装
快捷方式:
pip install scrapy-useragents
或者把这个中间件放在scrapy项目旁边。
文档
在setting.py中,例如:
# ----------------------------------------------------------------------------- # USER AGENT # ----------------------------------------------------------------------------- DOWNLOADER_MIDDLEWARES.update({ 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None, 'scrapy_useragents.downloadermiddlewares.useragents.UserAgentsMiddleware': 500, }) USER_AGENTS = [ ('Mozilla/5.0 (X11; Linux x86_64) ' 'AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/57.0.2987.110 ' 'Safari/537.36'), # chrome ('Mozilla/5.0 (X11; Linux x86_64) ' 'AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/61.0.3163.79 ' 'Safari/537.36'), # chrome ('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) ' 'Gecko/20100101 ' 'Firefox/55.0') # firefox ]
设置参考
用户代理
爬网时要使用的用户代理的列表,除非被重写。
中间件将从模块中按功能周期旋转此列表 Itertools公司。
小心这个中间件不能处理 Cookies_enabled为true,并且网站将Cookie与 用户代理,它可能导致蜘蛛不可预知的结果。这个问题会 以后再解决。
待办事项
- 从后端读取用户代理,例如MongoDB、MySQL,甚至是保存在 本地磁盘。
- 使用cookies旋转用户代理绑定,保持一致性
- 根据每个请求为用户代理选择添加元密钥