• 【爬虫--必须要了解的请求头 user-agent】


    在现在Python最火的时代,有一门技术已经被广泛宣传了 -- 爬虫

    那爬虫是什么呢?它是按照一定的规则,自动地抓取网络上信息的程序或者脚本
    举个简单的例子,腾讯新闻网站上,有统计全国各地的疫情情况

    前言

    图片

    这些疫情,是怎么汇总的呢?


    如果只是靠人工手动去收集,那耗费的人力物力将非常的庞大。


    那具体该怎么做呢?


    其实,这个就是通过爬虫技术,写好脚本,到国家卫健委的官网上以及各个城市的卫健委的官网上去获取到的数据,然后进行归纳总结。

    Ps:爬虫技术好,但是不要去触犯法律哟


    既然爬虫能获取到网上的各种信息,那当然就会有很多公司,不想要自己的资源被其他人随随便便的获取。


    所以,就会有很多平台,会去设置一些反爬虫的手段,比如今天我们要讲到的user-agent

    User-Agent

    图片

    User Agent中文名为用户代理,简称 UA。


    它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等等。


    也就是说,假设:一个平台,设置了UA权限,必须以浏览器进行访问

    当你使用爬虫脚本去访问该网站的时候,就会出现,访问失败、没有权限、或者没有任何资源返回的结果等错误信息。

    不带User-Agent的情况

    图片

    图片

    通过gif图,你会发现,当我们使用工具去发送请求的时候,user-agent显示的是你工具的版本。


    那么当对方平台设置了UA权限的时候,我们通过工具去发起请求的时候,就会提示各种错误,这个就可以好理解了。

    带User-Agent的情况

    图片

    图片

    通过gif图,你会发现,当我们添加了一个User-Agent请求头,再去执行请求的时候,就可以得到正确的结果了。


    并且我们使用工具去发送请求的请求头里 User-Agent也已经发生的改变。

    那User-Agent怎么去设置呢?

    图片

    • 首先,我们要先了解,User-Agent的组成

    以谷歌浏览器为例:


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

    第一部分:Mozilla/5.0,默认都带上这个值


    第二部分:(Windows NT 10.0; Win64; x64),表示操作系统版本,Windows NT 10.0就是win10系统,Win64; x64表示的是64位系统


    第三部分:AppleWebKit/537.36 (KHTML, like Gecko),表示搜索引擎,也就是浏览器内核


    第四部分:

    Chrome/79.0.3945.117 Safari/537.36,表示浏览器的版本

    • 然后,再了解一下怎么查看user-agent

    打开浏览器F12,随便访问一个网站,以百度为例

    图片

    访问到页面后,查看任何一个获取到的资源,都会有一个user-agent。

    • 最后,怎么设置呢?


    User-Agent是一个头部信息,所有,我们把UA添加到请求头即可。


    比如Jmeter:

    图片

    通过以上的了解,我们就可以知道,当公司的接口做了UA限制的时候,我们把正确的User-Agent的值,添加到请求头即可。

    福利时间,UA的操作系统部分

    • Windows系统下:

    Windows NT 5.0,表示Windows 2000


    Windows NT 5.1,表示Windows XP


    Windows NT 6.0,表示Windows Vista


    Windows NT 6.1,表示Windows 7


    Windows NT 6.2,表示Windows 8


    Windows NT 6.3,表示Windows 8.1


    Windows NT 10.0,表示 Windows 10


    Win64; x64,表示64位的系统


    WOW64,表示32位的应用程序运行于此64位处理器上

    • Linux系统下:


    X11; Linux i686


    X11; Linux x86_64


    X11; Linux i686 on x86_64

    • macOS系统下:


    Macintosh; Intel Mac OS X 10_9_0


    Macintosh; PPC Mac OS X 10_9_0


    Macintosh; Intel Mac OS X 10.12

  • 相关阅读:
    AOSP Android 系统源码编译出的framework.jar和android.jar之间的区别
    李沐机器学习入门
    ElementUI浅尝辄止38:Upload 上传
    Oracle实验五Sql语句
    学习笔记7--车辆控制平台
    【开题报告】基于Python的绿植采购平台的设计与实现开题报告
    全国行政区划2023年最新版
    openssl3.2 - exp - export ecc pubkey from ecc priv key
    JavaSE——类和对象 重点梳理
    LLM技术全景图:技术人必备的技术指南,一张图带你掌握从基础设施到AI应用的全面梳理
  • 原文地址:https://blog.csdn.net/m0_58552717/article/details/134009739