HTTP请求头中的User-Agent字段
引言
当我们使用python爬虫爬取数据时,经常会遇到爬取请求拒绝的问题,通过查看请求信息,我们会发现,一般写的爬虫会默认告诉服务器自己发送了一个Python爬取请求,而一般网站是不允许被爬虫访问的,可能是因为会涉及到商业问题。最后,通过更改User-Agent字段就可以轻易骗过该网站。
那么User-Agent到底是什么呢?
User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。
User-Agent字段
1. 基本格式
我们在Chrome内核的浏览器中查看User-Agent的结果如下:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36
User-Agent的通常格式如下:
Mozilla/5.0 (平台) 引擎版本 浏览器版本号
2. 第一部分:Mozilla/5.0
历史上各种版本的浏览器互相竞争,当时想获得图文并茂的网页,就必须宣称自己是 Mozilla 浏览器。由此导致如今User-Agent里通常都带有Mozilla字样,出于对历史的尊重,大家都会默认填写该部分。
3. 第二部分:平台
平台这部分可由多个字符串组成,用英文半角分号分开。
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 // Win64 on x64
WOW64 // Win32 on x64
其中,Windows NT 10.0是指我使用的操作系统的版本,比如我使用的win10对应的就是Windows NT 10.0,如果我使用win7对应的就是Windows NT 6.1。Win64; x64是指我的操作系统是64位的。
Linux系统平台这部分内容如下:
X11; Linux i686; // Linux 桌面,i686 版本
X11; Linux x86_64; // Linux 桌面,x86_64 版本
X11; Linux i686 on x86_64 // Linux 桌面,运行在 x86_64 的 i686 版本
macOS系统平台这部分内容如下:
Macintosh; Intel Mac OS X 10_9_0 // Intel x86 或者 x86_64
Macintosh; PPC Mac OS X 10_9_0 // PowerPC
Macintosh; Intel Mac OS X 10.12; // 不用下划线,用点
4. 第三部分:引擎版本
历史上,苹果依靠了WebKit内核开发出Safari浏览器,WebKit包含了WebCore引擎,而WebCore又从KHTML衍生而来。由于历史原因,KHTML引擎需要声明自己是“类似Gecko”的,因此引擎部分通常写为:AppleWebKit/537.36 (KHTML, like Gecko)…Safari/537.36。再后来,Google开发Chrome也是用了WebKit内核,于是也跟着这么写。借用Littern的一句话:“Chrome 希望能得到为Safari编写的网页,于是决定装成Safari,Safari使用了WebKit渲染引擎,而WebKit呢又伪装自己是KHTML,KHTML呢又是伪装成Gecko的。同时所有的浏览器又都宣称自己是Mozilla。”。不过,后来Chrome 28某个版本改用了blink内核,但还是保留了这些字符串。而且,最近的几十个版本中,这部分已经固定,没再变过。
5. 浏览器版本
浏览器版本则是大家通常理解的浏览器版本,本人用的是Chrome浏览器,其中60.0 是大版本,3100是持续增大的一个数字,而0则是修补漏洞的小版本。
HTTP请求头中的User-Agent字段相关推荐
- axios请求拦截器在请求头中添加token
验证用户是否需要登陆,如果需要登陆在请求前在请求头中自动添加token字段. 代码: // request 拦截器 // 可以自请求发送前对请求做一些处理 request.interceptors.r ...
- 需要授权的 API ,必须在请求头中使用 Authorization 字段提供 token 令牌
需要授权的 API ,必须在请求头中使用 添加字段 需要授权的 API ,必须在请求头中使用 Authorization 字段提供 token 令牌 实现方法 通过 axios 请求拦截器添加 tok ...
- Http 请求头中的 Proxy-Connection
平时用 Chrome 开发者工具抓包时,经常会见到 Proxy-Connection 这个请求头.之前一直没去了解什么情况下会产生它,也没去了解它有什么含义.最近看完<HTTP 权威指南> ...
- http请求头中的content-type 属性
在HTTP请求中,我们每天都在使用Content-Type来指定不同格式的请求信息,但是却很少有人去全面了解Content-Type中允许的值有多少,因此这里来了解一下Content-Type的可用值 ...
- HTTP 请求头中的 Remote_Addr,X-Forwarded-For,X-Real-IP
REMOTE_ADDR 表示发出请求的远程主机的 IP 地址,remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间 ...
- ajax被token拦截,vue中封装ajax请求,并且拦截请求在请求头中添加token
/** * 封装请求方法 * @param {Object} url 接口请求地址 * @param {Object} data 接口请求参数(无需请求方式参数,则此项可以为空,否则必须传) * @p ...
- axios获取header中的信息_Axios请求头中常见的Content-Type及其使用
Vue2.0之后,官方不再继续维护vue-resource,尤雨溪大大推荐使用Axios用来替代Ajax. Axios请求头中的Content-Type常见的有3种: 1.Content-Type:a ...
- mysqls压力测试怎么用_用 Swagger 测试接口,怎么在请求头中携带 Token?
松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下: 感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程 今天的话题来自一个小伙伴在微信上的提问 ...
- oauth2 java 获取token_OAuth2 Token 一定要放在请求头中吗?
Token 一定要放在请求头中吗? 答案肯定是否定的,本文将从源码的角度来分享一下 spring security oauth2 的解析过程,及其扩展点的应用场景. Token 解析过程说明 当我们使 ...
- 爬虫-在请求头中添加cookie键值对 访问登陆后可见的页面
关于cookie >笔记 >理解 cookie相当于病人手里的病历 cookie的格式 请求头中添加cookie键值对 练习-不使用cookie访问个人中心 访问人人网个人中心 结果是得到 ...
最新文章
- 深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇)
- php导出excel(xls或xlsx)(解决长数字显示问题)
- 过节的快乐,在于Free | 手把手带你学Django
- erlang 二进制
- Timer TimeTask Handler
- 2017寒假第一篇随笔(寒假作业一)
- VTK:PolyData之TransformOrderDemo
- HDFS分布式文件系统设计原理
- android studio dns问题_Android网络优化篇-从DNS开始
- 一起瞅一下那些经典案例是如何产业落地的~
- apache配置说明
- matlab单机无限大系统_单机无穷大系统暂态仿真(完整).docx
- 在Hbuilder X中配置夜神模拟器
- Windows下Perl环境安装和使用
- 基于X86汇编语言的简易打字游戏实现
- arcgis标注牵引线_ArcEngine设置有牵引线的标注
- 怎么修改和编辑PDF文件中的文字内容
- 登录注册页面,JS判断用户手机号码是否已经存在,或者格式不正确
- Yocto系列讲解[技巧篇]81 - 如何打patch修复打补丁出错的recipe
- 密钥格式标准PKCS,X.509
热门文章
- 2018-10-31初级.Net面试题1th
- 同步读取文件和异步读取文件的区别
- 成都的“大众点评+街旁”
- 重庆邮电大学计算机学硕好考吗,重庆邮电大学研究生好考吗
- OpenCV-Python教程:模板匹配(matchTemplate)
- 切点java_AspectJ之切点语法
- gdtool解决在微信中点击棋牌游戏类app下载链接显示已停止访问打不开的问题
- 第一章 计算机体系结构(三)— 存储系统之磁盘列阵技术、存储域网络
- 包含有简易mvp的音乐播放器
- 电脑右键计算机属性在哪里打开,右键属性打不开怎么办