不管是做开发还是做过网站的朋友们,应该对于用户代理一点都不陌生,用户代理中文名为用户代理,简称UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本,CPU类型,浏览器及版本,浏览器渲染引擎,浏览器语言,浏览器插件等
在Python爬虫的过程中经常要模拟UserAgent,因此自动生成UserAgent十分有用
通过UA来判断不同的设备或者浏览器是开发者最常用的方式方法,这个也是对于Python反爬的一种策略,但是有盾就有矛啊
就是让你的抓取行为和用户访问网站的真实行为尽量一致
1,伪造UA字符串,每次请求都使用随机生成的UA
为了减少复杂度,随机生成UA的功能通过第三方模块库fake-useragent实现,使用脉冲进行安装
pip安装fake-useragent
2,生成一个UA字符串只需要如下代码
从fake_useragent进口UserAgent ua=UserAgent ()
这个库还有一个其他的功能,就是可以随机各浏览器的UA
IE浏览器的UA:
打印(ua.ie)
Mozilla/5.0(窗口;U;MSIE 9.0;Windows NT 9.0;en - us)
歌剧浏览器的UA:
打印(ua.opera)
歌剧/9.80 (Windows NT 6.1;U;应用)转眼间/2.6.37版本/11.00
铬浏览器的UA:
打印(ua.chrome)
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML,像壁虎)Chrome/22.0.1216.0 Safari 537.2
Firefox浏览器的UA:
打印(ua.firefox)
Mozilla/5.0 (Windows NT 6.2;Win64;x64;房车:16.0.1)壁虎/20121011 Firefox/16.0.1
Safari浏览器的UA:
打印(ua.safari)
Mozilla/5.0 (iPad;CPU OS 6 _0像Mac OS X) AppleWebKit/536.26 (KHTML,像壁虎)/6.0版本移动/10 a5355d Safari 8536.25
写爬虫最实用的就是可以随意变换标题,一定要有随机性
在这里我写了三个随机生成UA,三次打印都不一样,随机性很强,十分方便
打印(ua.random) 打印(ua.random) 打印(ua.random)
Mozilla/5.0 (X11;横i686 3912.101.0) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/27.0.1453.116 Safari 537.36
Mozilla/5.0(麦金塔电脑;Intel Mac OS X 10 _10_1) AppleWebKit/537.36 (KHTML, likeGecko)铬/37.0.2062.124 Safari 537.36
Mozilla/5.0(麦金塔电脑;Intel Mac OS X 10 _9_0) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/32.0.1664.3 Safari 537.36
当然,你如果不想这么用的话,你也可以自己搜集一些UA,存为文本文件,然后打开读取来用
user_agent=[ “Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.1;SV1;阿;net CLR 1.1.4322;net CLR 2.0.50727)”, “Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 6.0;Acoo浏览器;SLCC1;net CLR 2.0.50727;媒体中心电脑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(窗;U;MSIE 9.0;Windows NT 9.0;en - us)”, “Mozilla/5.0 (compatible;MSIE 9.0;Windows NT 6.1;Win64;x64;三叉戟/5.0;net CLR 3.5.30729;net CLR 3.0.30729;net CLR 2.0.50727;媒体中心电脑6.0)”, “Mozilla/5.0 (compatible;MSIE 8.0;Windows NT 6.0;三叉戟/4.0;WOW64;三叉戟/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.0 b;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(窗;U;Windows NT 5.1;应用)AppleWebKit/523.15 (KHTML,像壁虎,Safari/419.3) Arora/0.3 (c9dfb30变化:287)”, “Mozilla/5.0 (X11;U;Linux;en - us) AppleWebKit/527 + (KHTML,像壁虎,Safari/419.3) Arora/0.6”, “Mozilla/5.0(窗;U;Windows NT 5.1;en - us;房车:1.8.1.2pre)壁虎/20070215 K-Ninja 2.1.1”, “Mozilla/5.0(窗;U;Windows NT 5.1;应用;房车:Firefox 1.9)壁虎/20080705/3.0 Kapiko/3.0”, “Mozilla/5.0 (X11;Linux i686;U。)壁虎/20070322 Kazehakase 0.4.5”, “Mozilla/5.0 (X11;U;Linux i686;en - us;房车:1.9.0.8)壁虎Fedora/1.9.0.8-1。fc10 Kazehakase/0.5.6”, “Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/535.11 (KHTML,像壁虎)Chrome/17.0.963.56 Safari 535.11”, “Mozilla/5.0(麦金塔电脑;Intel Mac OS X 10 _7_3) AppleWebKit/535.20 (KHTML,像壁虎)Chrome/19.0.1036.7 Safari 535.20”, “Opera/9.80(麦金塔电脑;英特尔公司的Mac OS x10.6.8;U;fr)转眼间/2.9.168版本/11.52”, )Python爬虫小技巧之伪造随机的用户代理