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

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第三方库


热门话题
编写测试用例时将Json响应转换为java对象时出错   Java中的LZW压缩/扩展   java ProGuard**通配符匹配类问题   javajar忽略其中的文件   java捕获字符串中属性的值?   操作集合的java最佳实践   nullpointerexception Java如何处理参数传递的空值?   java Android Twitter4j最新流行推文未显示   使用selenium webdriver代码在ie浏览器中关注java问题   java如何在单个帖子中发送文件和数据?   使用不同的用户证书验证Java Rest调用   调试Vagrant+Oracle VM+Java Hybris调试   在网页上运行Java应用程序的html   java无法使用GWT显示从REST webservice检索的图像   java在数据库中存储jodatime日期时间   java Hibernate二级缓存只写不读   javafx8中画布内的java HoverProperty   java JOptionPane如何禁用X?   ssl如何使用自签名证书运行Java HTTP服务器,并信任浏览器?   java HibernateTransactionManager回滚事务