一种在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旋转用户代理绑定,保持一致性
  • 根据每个请求为用户代理选择添加元密钥

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

推荐PyPI第三方库


热门话题
Java类之间并发性不一致的HashMap   插件如何在JavaSwing中使用UIManager和Classloader从外部jar安装外观?   java JasperReports:找不到子报表   在项目中找不到java生成的Javadoc文件   java BigDecimal。multiply()和divide()方法返回十六进制数。为什么?   java统计出现次数并从字符串中删除重复项   调用运算符时发生java NullPointerException   Spring和Hibernate之间的java配置错误   JavaZK将用户重定向回上一页   Javasocket为传出连接指定特定的网络接口   如果拖动到某个区域外,java Make按钮操作将被取消   如何在Eclipse for selenium 3.141.59中添加Java文档链接   java从匹配条件的数组中获取所有索引   docker未连接到RemoteWebDriver的java Gitlab ci selenium测试   java重写run方法   utf 8如何使用java解码UTF8编码的字符串?   java如何从eclipse调试部署在tomcat上的web应用程序?   将字母字符与前面没有百分号的Java正则表达式匹配