HTTP “请求头信息”Request Header是向服务端提供客户端的信息,“响应头信息”Response Header是服务端向客户端提供请求文档信息或服务器的状态信息,服务端判断服务端的身份,就是通过Header来判断的,所以爬虫通过设置Header来隐藏自己相当重要。

HTTP请求

一个完整的HTTP请求包含以下部分:

请求方法 URL HTTP版本

请求头信息

请求数据

常见的请求头:

Accept:客户端接收的数据类型,如:Accept:text/html

User Agent:客户端软件类型

Authorization:认证消息,包括用户名和口令

Referer:用户获取的Web页面

真实的请求头信息会更多,下面是豆瓣某短评的真实请求头:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7

Cache-Control: max-age=0

Connection: keep-alive

Cookie: douban-fav-remind=1; _vwo_uuid_v2=DA9D8506AF55689A98FC4EC5458A1F005|9e3e2c5da18b4341ef7c7c5b1e6bc17d; __utmv=30149280.19413; douban-profile-remind=1; ll="118281"; __gads=ID=84d32737c7eb0e14:T=1564540928:S=ALNI_MYeYoLNcsUs74D0ASArxlCoDpjBIA; viewed="24872560"; bid=SdT44rmbqnQ; __utmz=223695111.1572102190.1.1.utmcsr=douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __yadk_uid=FTuDNkSGj6E7mIoNRiLhR0HOeQGlFstY; push_noty_num=0; push_doumail_num=0; __utmz=30149280.1572351033.43.22.utmcsr=douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/people/194130217/; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1576563221%2C%22https%3A%2F%2Fwww.douban.com%2F%22%5D; _pk_id.100001.4cf6=c746db049db29d28.1572102190.8.1576563221.1574420366.; _pk_ses.100001.4cf6=*; __utma=30149280.1363678983.1539603396.1574420366.1576563222.48; __utmb=30149280.0.10.1576563222; __utmc=30149280; __utma=223695111.1512084094.1572102190.1574420367.1576563222.8; __utmb=223695111.0.10.1576563222; __utmc=223695111

Host: movie.douban.com

Sec-Fetch-Mode: navigate

Sec-Fetch-Site: none

Sec-Fetch-User: ?1

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

HTTP响应

一个完整的HTTP响应包含以下部分:

状态行

响应头

响应数据

常见的状态行:

响应码

说明

请求成功

20x

200

OK,请求成功

201

OK,建立新的资源(POST)

202

请求被接受,但处理未完成

204

OK,但没有内容返回

重定向

30x

301

所请求的资源已被指派为新的固定URL

302

所请求的资源临时位于另外的URL

304

文档没有修改(GET)

客户差错

40x

400

错误的请求

401

未被授权

403

不明原因的禁止

404

没有找到

服务器差错

50x

500

内部服务器差错

501

没有实现

502

错误的网关,网关或上游服务器来的无效响应

503

服务器暂时失效

更多状态码查看: HTTP状态码

常见的响应头:

Server:Web服务器程序的信息

Date:当前服务器的日期和时间

Last Modified:请求文档最近一次修改的时间

Expires:请求文档过期时间

Content-length:数据长度(字节)

Content-type:数据MIME类型

WWW-authenticate:用于通知客户方需要的认证信息,如用户名,口令等

下面是豆瓣某短评的真实响应头:

Cache-Control: must-revalidate, no-cache, private

Connection: keep-alive

Content-Encoding: br

Content-Type: text/html; charset=utf-8

Date: Tue, 17 Dec 2019 06:13:57 GMT

Expires: Sun, 1 Jan 2006 01:00:00 GMT

Keep-Alive: timeout=30

Pragma: no-cache

Server: dae

Transfer-Encoding: chunked

Vary: Accept-Encoding

Vary: Accept-Encoding

X-Content-Type-Options: nosniff

X-DAE-App: movie

X-DAE-Instance: default

X-Douban-Mobileapp: 0

X-Xss-Protection: 1; mode=block

Requests设置Header

Python使用Requests来请求的时候,如果没有设置Header,Header是空的,设置Header的方法如下:

headers = {

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) '

'Chrome/41.0.2227.1 Safari/537.36',

'Cache-Control': 'max-age=0',

'Cookie': 'douban-fav-remind=1; _vwo_uuid_v2=DA9D8506AF55689A98FC4EC5458A1F005|9e3e2c5da18b4341ef7c7c5b1e6b'

'c17d; __'

'utmv=30149280.19413; douban-profile-remind=1; ll="118281"; __gads=ID=84d32737c7eb0e14:T=15645409'

'28:S=ALNI_MYeYoLNcsUs74D0ASArxlCoDpjBIA; viewed="24872560"; bid=SdT44rmbqnQ; __utmz=223695111.15'

'72102190.1.1.utmcsr=douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __yadk_uid=FTuDNkSGj6'

'E7mIoNRiLhR0HOeQGlFstY; dbcl2="194130217:uUZw2E9T6DY"; push_noty_num=0; push_doumail_num=0; __'

'utmz=30149280.1572351033.43.22.utmcsr=douban.com|utmccn=(referral)|utmcmd=referral|utmcct='

'/people/194130217/; ck=rIT_; ap_v=0,6.0; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1574385397%2C%'

'22https%'

'3A%2F%2Fwww.douban.com%2F%22%5D; _pk_ses.100001.4cf6=*; __utma=30149280.1363678983.1539603396.15'

'72478349.1574385398.46; __utmb=30149280.0.10.1574385398; __utmc=30149280; __utma=223695111.15120'

'84094.1572102190.1572478349.1574385398.6; __utmb=223695111.0.10.1574385398; __utmc=223695111; _'

'pk_id.100001.4cf6=c746db049db29d28.1572102190.6.1574385406.1572478372.',

}

# 设置请求超时时间,header

r = requests.get(url, timeout=20, headers=headers)

python header是啥_Python爬虫之Header相关推荐

  1. python head 函数_python爬虫中header是什么?怎么用?

    我们查找网页的时候,点击进去就是一个完整的查看过程.当我们想要获取网页数据的时候,就要跟这种浏览过程一样,不然网页会把我们阻拦在外面.我们今天所要讲的python爬虫header就是帮助我们完成这样浏 ...

  2. python request headers获取_Python爬虫实战—— Request对象之header伪装策略

    在header当中,我们经常会添加两个参数--cookie 和 User-Agent,来模拟浏览器登录,以此提高绕过后台服务器反爬策略的可能性. User-Agent获取 User-Agent可通过随 ...

  3. python requests的作用_Python爬虫第一课:requests的使用

    requests模块的入门使用 注意是requests不是request. 1.为什么使用requests模块,而不是用python自带的urllib requests的底层实现就是urllib re ...

  4. python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现

    这篇文章我们来讲一下在网站建设中,Python爬虫进阶之爬取某视频并下载的实现.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 这几天在家闲得无聊,意外的挖掘到了一个资源网站 ...

  5. python成绩查询系统_Python爬虫实战:登录教务系统查成绩

    本文记录我用Python登录教务系统查询成绩的过程.手动输入验证码,简单获取成绩页面.后续将可能更新自动识别验证码登录查询 前期准备 本爬虫用到了Python的Requests库和BeautifulS ...

  6. python requests下载网页_python爬虫 requests-html的使用

    一 介绍 Python上有一个非常著名的HTTP库--requests,相信大家都听说过,用过的人都说非常爽!现在requests库的作者又发布了一个新库,叫做requests-html,看名字也能猜 ...

  7. python下载电影天堂_Python爬虫初学:爬取电影天堂数据

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于IT共享之家,作者:IT共享者 [一.项目背景] 相信大家都有一种头疼的体验,要下载 ...

  8. python提前查成绩_Python爬虫案例——正方教务学生成绩获取(自动识别验证码)...

    刚刚进入假期,学校开放了期末成绩查询,奈何正方教务的各种卡顿.很多学弟学妹问有没有好办法能够解决,闲来无事写了一段自动获取的爬虫程序练练手. 环境Python3.7 Jupyter 主要库reques ...

  9. python网页抓包_python爬虫入门01:教你在 Chrome 浏览器轻松抓包

    通过 我们知道了什么是爬虫 也知道了爬虫的具体流程 那么在我们要对某个网站进行爬取的时候 要对其数据进行分析 就要知道应该怎么请求 就要知道获取的数据是什么样的 所以我们要学会怎么抓咪咪! 哦,不对. ...

  10. python网页结构分析图_Python爬虫解析网页的4种方式 值得收藏

    用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中, ...

最新文章

  1. 一堆让人惊喜的实用工具,也许你还不知道
  2. mysql表结构说明只能为1 8_SQL基础
  3. silverlight中的socket编程注意事项
  4. VS2019 配色_NBA球员上脚:基德穿AJ13湖人配色,莫兰特的保罗乔治4代!
  5. Hyperledger Fabric1.0架构概览
  6. MySQL排序ORDER BY与分页LIMIT,SQL,减少数据表的网络传输量,完整详细可收藏
  7. Linux Shell高级技巧(三)
  8. 【服务端渲染】NuxtJS基础
  9. java工程师_南通JAVA软件工程师暑假强化实训学校
  10. 火狐浏览器 模拟人工重复操作_火狐浏览器下载手机版-火狐浏览器下载安装到手机v68.6.0...
  11. Ubuntu下安装LAMP及phpmyadmin
  12. mysql存储过程的学习(mysql提高执行效率之进阶过程)
  13. DP算法——打家劫舍系列
  14. 迅雷x导入未完成任务失败的解决办法。
  15. cesium 矢量图 编辑_openlayers添加、删除矢量图,多边形
  16. 2017NOIp模拟赛08.20
  17. DateTime转为特定时区时间
  18. java net包 网关_Net分布式系统之六:微服务之API网关
  19. 【基础知识】HTML5 Canvas小项目时钟的简单实现(图文、演示)
  20. 网站dns服务器不能用,Win7网络诊断“DNS服务器可能不可用”怎么解决?

热门文章

  1. 解析Linux商业应用现状
  2. 计算机随机数字excel,excel怎么生成随机数字 excel随机数字区间怎么设定
  3. DLL加载: Debug版本正常加载,Release版本LoadLibrary加载失败,返回错误126
  4. Python制作微信小助手
  5. clk_get_rate函数
  6. Green Screen Wizard Pro(绿幕摄影软件)官方正式版V12.1 | 绿屏拍摄有什么软件?
  7. ARP 项添加失败: 请求的操作需要提升
  8. Go 每日一库之 go-flags
  9. Magento给Newsletter Subscribers添加状态选项(默认只有Not Activated,Subscribed,Unsubscribed,Unconfirmed)
  10. 感恩节(Thanksgiving Day)