为每个请求自动选择用户代理
scrapy-user-agents的Python项目详细描述
随机用户代理中间件基于Python User Agents和MDN获取User-Agent字符串。
安装
最简单的方法是通过pip安装
pip install scrapy-user-agents
配置
关闭内置的UserAgentMiddleware并添加 RandomUserAgentMiddleware。
在scrapy中>;=1.0:
DOWNLOADER_MIDDLEWARES={'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,'scrapy_user_agents.middlewares.RandomUserAgentMiddleware':400,}
在scrapy<;1.0中:
DOWNLOADER_MIDDLEWARES={'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware':None,'scrapy_user_agents.middlewares.RandomUserAgentMiddleware':400,}
用户代理文件
此存储库中包含一个默认的用户代理文件,其中包含使用<;https://developers.whatismybrowser.com/>;从<;https://github.com/hyan15/crawler-demo/tree/master/crawling-basic/common_user_agents>;收集的大约2200个用户代理字符串。您可以通过设置RANDOM_UA_FILE来提供自己的用户代理文件。
配置用户代理类型
格式为<device_type>.<browser_type>的配置参数RANDOM_UA_TYPE,默认值为desktop.chrome。对于设备类型部分,仅支持desktop、mobile、tablet。对于浏览器类型部分,仅支持chrome、firefox、safari、ie、safari。如果不想只修复一种浏览器类型,可以使用random从所有浏览器类型中进行选择。
您可以将RANDOM_UA_SAME_OS_FAMILY设置为true,以便只使用属于同一操作系统系列的用户代理,如windows、mac os、linux或android、ios等。默认值为true。
使用 FLASY代理 < /H2>
要与随机代理(如scrapy-proxies)的中间件一起使用,您需要:
- 将RANDOM_UA_PER_PROXY设置为true以允许每个代理进行切换
- 将RandomUserAgentMiddleware的优先级设置为大于scrapy-proxies,以便在句柄ua之前设置代理
配置假用户代理回退
有一个配置参数FAKEUSERAGENT_FALLBACK默认为 None。可以将其设置为字符串值,例如Mozilla或 Your favorite browser,此配置可以完全禁用任何 讨厌的例外。