返回顶部

爬虫中的User-Agent 使用与作用

原文链接:https://zhuanlan.zhihu.com/p/49731572

  • User-Agent

按照百度百科的解释:User-Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。网站可以通判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,对于爬虫来说,UA就是标明身份的第一层标识。

以谷歌浏览器为例,Chrome的User-Agent为

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36

  

快速获取浏览器的User-Agent的方法也很简单,只需要在地址栏中输入:about:version即可,如下图所示:

 

 

当我们使用爬虫请求网页时,我们不伪装请求头,以为例,使用requests的GET直接请求,得到如下结果:

可以看到,User-Agent直接显示为requests的版本号,接下来我们加入User-Agent试试。

很清楚的看到,User-Agent已经被替换成浏览器的标识了,而我们使用爬虫时也大多会带上这个请求头,但这只是一个User-Agent,也很容易被网站通过相同浏览器频繁访问而识别为爬虫程序,所以一般通过使用多个User-Agent随机调用的方式,避免一个请求头长时间访问。

使用random的方式随机调用headers_list中的User-Agent,可以有效避免同一个请求头访问网站,但每次使用时,还需要自己寻找各种浏览器的User-Agent,再将其复制过来,显得有些麻烦,这个时候我们另寻他法,有一个第三方库恰好可以解决这类问题。

fake-useragent

安装方法和其他第三方库一样,pip install fake-useragent即可。

使用方法也十分简单,导入类中的UserAgent类,然后在使用random方法就可以获得一个User-Agent了,还支持指定浏览器的User-Agent功能。

我们也可以通过网站看到fake_useragent库里面所提供的这几款浏览器的User-Agent,如图:

可以看到fake_useragent提供了很多User-Agent,所以我们在使用随机User-Agent的时候,不用担心重复的问题了。当然User-Agent只是第一步,基本上大家在写爬虫的时候都会带上请求头,配合上ip代理使用的话,爬虫的伪装能力就会大大增强了。

posted @ 2020-08-06 10:07  fen斗  阅读(4234)  评论(0编辑  收藏  举报