zoukankan      html  css  js  c++  java
  • 爬虫中的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代理使用的话,爬虫的伪装能力就会大大增强了。

  • 相关阅读:
    LeetCode 227. Basic Calculator II
    LeetCode 224. Basic Calculator
    LeetCode 103. Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 169. Majority Element
    LeetCode 145. Binary Tree Postorder Traversal
    LeetCode 94. Binary Tree Inorder Traversal
    LeetCode 144. Binary Tree Preorder Traversal
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/13444526.html
Copyright © 2011-2022 走看看