Python爬虫小技巧之伪造随机的用户代理

  

  

不管是做开发还是做过网站的朋友们,应该对于用户代理一点都不陌生,用户代理中文名为用户代理,简称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爬虫小技巧之伪造随机的用户代理