请求头详解——Headers

发布时间 2023-08-02 16:48:08作者: abababiubiu

请求头定义:

客户端,即浏览器通过输入url后确定等于做了一次向服务器的请求动作,在这个请求里面带有请求参数,请求参数的集合即为请求头。

请求头的参数(常用的):

  • Accept:浏览器可接收的文件类型
  • Accept-Charset:浏览器可以接收的编码类型
  • Accept-Encoding:浏览器可以接收的压缩编码类型
  • Accept-Language:浏览器可以接收的语言和国家类型
  • Host:请求的主机地址和端口
  • If-Modified0-Since:页面的缓存时间
  • Referer:请求来自哪个页面的url(防盗链)
  • User-Agent:用户代理,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等等
  • Cookie:浏览器暂存服务器发送的信息
  • Connection:表示HTTP请求版本的特点
  • Date:请求网站的时间
  • Upgrade-Insecure-Requests:告诉服务器,浏览器可以处理HTTPS协议
  • X-Requested-With:判断是否Ajax请求

要点:

  • 一个标准的请求头基本上都带有以上属性
  • 网络爬虫中,用户代理一般情况下是一定要添加的,因为反爬通常检测请求头的Referer和User-Agent,其他属性可以根据实际情况进行添加
  • Cookie不能添加到请求头中

网页中的标准请求头(以百度首页为例):

  1. 点击F12,在出现的开发者工具中按Ctrl+R刷新
  2. 选中网络->全部->www.baidu.com->标头->请求标头
  3. 会得到如下请求头

     

Python中的请求头(以字典格式显示):

 1 Headers = {
 2     "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
 3     "Accept-Encoding":"gzip, deflate, br",
 4     "Accept-Language":"zh-CN,zh;q=0.9",
 5     "Cache-Control":"max-age=0",
 6     "Connection":"keep-alive",
 7     "Cookie":"BIDUPSID=BC40ABCFC55CAEBB40A1B38D53D9D83A; PSTM=1689932563; ZFY=5KdmWWi07wZbDhm0Nnm3OceuU7HDKPjfyw:BKIMIdKAg:C; jsdk-uuid=6b87a4d6-171e-40e8-8759-dfc4df2a1e25; BAIDUID=F765705D65C8FA866BA1B07CB00C4B89:FG=1; BD_HOME=1; H_PS_PSSID=36551_39109_39115_39121_39039_38917_38825_39087_26350_39138_39132_39100_39043; BAIDUID_BFESS=F765705D65C8FA866BA1B07CB00C4B89:FG=1; BD_UPN=12314753; BA_HECTOR=258185048h8424842l2l802m1ick4j61p",
 8     "Host":"www.baidu.com",
 9     "Referer":"https://cn.bing.com/",
10     "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188"
11 }

 

如上并没有将开发者工具显示的请求头全部加入,网络爬虫根据需要添加即可

 

写在最后:

我是君妄,一名刚刚开始接触爬虫的小白,希望和大家学习交流,同时指正我的不足。