伪造随机的User-Agent
写好爬虫的原则只有一条:
就是让你的抓取行为和用户访问网站的真实行为尽量一致
1、伪造UA字符串,每次请求都使用随机生成的UA
为了减少复杂度,随机生成UA的功能通过第三方模块库fake-useragent实现,使用pip进行安装
1
|
pip install fake - useragent |
2、生成一个UA字符串只需要如下代码
1
2
|
from fake_useragent import UserAgent ua = UserAgent() |
各浏览器的User-Agent
这个库还有一个其他的功能,就是可以随机各浏览器的UA
IE浏览器的UA:
1
|
print (ua.ie) |
Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)
Opera浏览器的UA:
1
|
print (ua.opera) |
Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.37 Version/11.00
Chrome浏览器的UA:
1
|
print (ua.chrome) |
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2
Firefox浏览器的UA:
1
|
print (ua.firefox) |
Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
Safari浏览器的UA:
1
|
print (ua.safari) |
Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25
随机User-Agent
写爬虫最实用的就是可以随意变换headers,一定要有随机性
在这里我写了三个随机生成UA,三次打印都不一样,随机性很强,十分方便
1
2
3
|
print (ua.random) print (ua.random) print (ua.random) |
Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/37.0.2062.124 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36
当然,你如果不想这么用的话,你也可以自己搜集一些UA,存为文本文件,然后打开读取来用
附:常用的User-Agent列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
USER_AGENTS = [ "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" , "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)" , "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" , "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)" , "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)" , "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)" , "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)" , "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)" , "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6" , "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1" , "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0" , "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5" , "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6" , "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11" , "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20" , "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52" , ] |
最新文章
- Javascript刷题 》数组求和
- linux 查找文件或者内容常用命令
- SOAP Webservice和RESTful Webservice
- 【转载】windows平台安装nodejs过程
- poj 1691 图方块 end
- 详解@Autowired、@Qualifier和@Required
- Hive(四):c#通过odbc访问hive
- JS 和 CSS 的位置对其他资源加载顺序的影响
- FPGA串口波特率简析
- easyui的样式easyui-textbox的一个bug
- 系统性能监测(使用nmon、nmonanalyser)
- Vue状态管理之Vuex
- note 12 集合Set
- jmeter-录制, 编辑脚本,性能测试全过程review
- Java学习笔记之——if条件语句和三目运算符
- PowerDesigner中翻转生成PDM图时把Name属性变成注释(转)
- openssl-0.9.8k_WIN32(RSA密钥生成工具
- Forms.Timer、Timers.Timer、Threading.Timer的研究
- debian flam3 源码
- java调用python
热门文章
- A+B Coming(hdu1720)
- 【Oracle】CentOS7/CentOS8命令行重启Oracle 11G R2
- ExtJS动态改变字体颜色
- thymeleaf将对象Model数据抛到HTML页面
- js中 addEventListener 和removeEventListener
- [JavaWeb基础] 006.Struts1的配置和简单使用
- Spring_AOP_AspectJ支持的通知注解
- RabbitMQ 高级应用
- 从汉堡加料说起——浅谈C#中的Decorator模式
- ASP.NET Core 3.x API版本控制