为每个请求自动选择用户代理

scrapy-user-agents的Python项目详细描述


随机用户代理中间件基于Python User AgentsMDN获取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。对于设备类型部分,仅支持desktopmobiletablet。对于浏览器类型部分,仅支持chromefirefoxsafariiesafari。如果不想只修复一种浏览器类型,可以使用random从所有浏览器类型中进行选择。

您可以将RANDOM_UA_SAME_OS_FAMILY设置为true,以便只使用属于同一操作系统系列的用户代理,如windows、mac os、linux或android、ios等。默认值为true。

使用 FLASY代理< /H2>

要与随机代理(如scrapy-proxies)的中间件一起使用,您需要:

  1. RANDOM_UA_PER_PROXY设置为true以允许每个代理进行切换
  2. RandomUserAgentMiddleware的优先级设置为大于scrapy-proxies,以便在句柄ua之前设置代理

配置假用户代理回退

有一个配置参数FAKEUSERAGENT_FALLBACK默认为 None。可以将其设置为字符串值,例如MozillaYour favorite browser,此配置可以完全禁用任何 讨厌的例外。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将向量的内容从一个包发送到另一个包?   java无法扩展类并对ArrayList进行排序   java无法对字符串的ArrayList进行排序   JavaP:ajax更改事件请求返回500错误   java如何为TableHeader使用渲染器   带有记号的java JSlider问题   Java如何在不同的类中调用add()方法   java如何使用JDBC和HSQLDB检索以前自动生成的PK ID值   java如何使dropwizard应用程序在启动完成之前忽略所有调用   使用MethodValidationPostProcessor进行java Spring验证   java Mediaplayer错误(19 0)不适用于release()   java UnsatifiedPendencyException Swigger2+Sringboot+@RestClientTest   java如何从onActivityResult更新回收器视图元素   java基于图像添加地板或如何优化已有方法   jComboBox的java奇怪行为   java从数据库表php中提取信息   Android-sqlite更新方法;JAVAlang.IllegalStateException:无法执行活动的方法   java如何将多个XSD文件合并到一个XSD文件?   java在不使用大多数API的情况下消除空格