Python小白学习爬虫常用请求报头

 更新时间:2020年06月03日 15:06:45   作者:爱喝马黛茶的安东尼  
在本篇文章里小编给大家整理了关于Python小白学习爬虫常用请求报头的相关知识点,需要的朋友们可以学习下。

客户端HTTP请求

URL只是标识资源的位置,而HTTP是用来提交和获取资源。客户端发送一个HTTP请求到服务器的请求消息,包括以下格式:

请求行、请求头部、空行、请求数据

一个典型的HTTP请求

GET https://www.baidu.com/ HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 
Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh,zh-CN;q=0.8,ar;q=0.6,zh-TW;q=0.4
Cookie: BAIDUID=AE4D1DA6B2D6689BB8C557B3436893E3:FG=1; BIDUPSID=AE4D1DA6B2D6689BB8C557B3436893E3; PSTM=1501466227; 
BD_UPN=12314353; BD_CK_SAM=1; PSINO=1; H_PS_PSSID=1420_25548_21080_20929; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; 
BDSVRTM=0

常用请求报头

1. Host (主机和端口号)

Host:对应网址URL中的Web名称和端口号,用于指定被请求资源的Internet主机和端口号,通常属于URL的一部分。

2. Connection (链接类型)

Connection:表示客户端与服务连接类型。

Client 发起一个包含 Connection:keep-alive 的请求,HTTP/1.1使用 keep-alive 为默认值。

Server收到请求后:

如果 Server 支持 keep-alive,回复一个包含 Connection:keep-alive 的响应,不关闭连接;

如果 Server 不支持 keep-alive,回复一个包含 Connection:close 的响应,关闭连接。

如果client收到包含 Connection:keep-alive 的响应,向同一个连接发送下一个请求,直到一方主动关闭连接。

keep-alive在很多情况下能够重用连接,减少资源消耗,缩短响应时间,比如当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都去请求建立连接。

3. Upgrade-Insecure-Requests (升级为HTTPS请求)

Upgrade-Insecure-Requests:升级不安全的请求,意思是会在加载 http 资源时自动替换成 https 请求,让浏览器不再显示https页面中的http请求警报。

HTTPS 是以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 HTTP 请求,一旦出现就是提示或报错。

4. User-Agent (浏览器名称)

User-Agent:是客户浏览器的名称,以后会详细讲。

5. Accept (传输文件类型)

Accept:指浏览器或其他客户端可以接受的MIME(Multipurpose Internet Mail Extensions(多用途互联网邮件扩展))文件类型,服务器可以根据它判断并返回适当的文件格式。

举例:

Accept: */*:表示什么都可以接收。

Accept:image/gif:表明客户端希望接受GIF图像格式的资源;

Accept:text/html:表明客户端希望接受html文本。

Accept: text/html, application/xhtml+xml;q=0.9, image/*;q=0.8:表示浏览器支持的 MIME 类型分别是 html文本、xhtml和xml文档、所有的图像格式资源。

q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容。若没有指定q值,则默认为1,按从左到右排序顺序;若被赋值为0,则用于表示浏览器不接受此内容类型。

Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;Application:用于传输应用程序数据或者二进制数据。详细请点击

6. Referer (页面跳转处)

Referer:表明产生请求的网页来自于哪个URL,用户是从该 Referer页面访问到当前请求的页面。这个属性可以用来跟踪Web请求来自哪个页面,是从什么网站来的等。

有时候遇到下载某网站图片,需要对应的referer,否则无法下载图片,那是因为人家做了防盗链,原理就是根据referer去判断是否是本网站的地址,如果不是,则拒绝,如果是,就可以下载;

7. Accept-Encoding(文件编解码格式)

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式,许多情形下这可以减少大量的下载时间。

举例:Accept-Encoding:gzip;q=1.0, identity; q=0.5, *;q=0

如果有多个Encoding同时匹配, 按照q值顺序排列,本例中按顺序支持 gzip, identity压缩编码,支持gzip的浏览器会返回经过gzip编码的HTML页面。 如果请求消息中没有设置这个域服务器假定客户端对各种内容编码都可以接受。

8. Accept-Language(语言种类)

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us指英语,zh或者zh-cn指中文,当服务器能够提供一种以上的语言版本时要用到。

9. Accept-Charset(字符编码)

Accept-Charset:指出浏览器可以接受的字符编码。

举例:

Accept-Charset:iso-8859-1,gb2312,utf-8

ISO8859-1:通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符,英文浏览器的默认值是ISO-8859-1.

gb2312:标准简体中文字符集;

utf-8:UNICODE 的一种变长字符编码,可以解决多种语言文本显示问题,从而实现应用国际化和本地化。

如果在请求消息中没有设置这个域,缺省是任何字符集都可以接受。

10. Cookie (Cookie)

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能,以后会详细讲。

11. Content-Type (POST数据类型)

Content-Type:POST请求里用来表示的内容类型。

举例:Content-Type = Text/XML; charset=gb2312:

指明该请求的消息体中包含的是纯文本的XML类型的数据,字符编码采用“gb2312”。

到此这篇关于Python小白学习爬虫常用请求报头的文章就介绍到这了,更多相关Python爬虫常用请求报头详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Python的Flask框架中的signals信号机制

    详解Python的Flask框架中的signals信号机制

    这里将为大家来详解Python的Flask框架中的signals信号机制,包括讲述信号的用途,并给出创建信号、订阅信号、发送信号的方法,需要的朋友可以参考下
    2016-06-06
  • python爬取酷狗音乐Top500榜单

    python爬取酷狗音乐Top500榜单

    大家好,本篇文章主要讲的是python爬取酷狗音乐Top500榜单,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Tensorflow实现卷积神经网络用于人脸关键点识别

    Tensorflow实现卷积神经网络用于人脸关键点识别

    这篇文章主要介绍了Tensorflow实现卷积神经网络用于人脸关键点识别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Python程序包的构建和发布过程示例详解

    Python程序包的构建和发布过程示例详解

    Python程序包的构建和发布过程,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-06-06
  • Python ftfy 包的使用案例解析

    Python ftfy 包的使用案例解析

    Unicode是一种字符编码标准,用于表示文本中的字符,通过安装 ftfy 软件包,可以在 Python 中使用它提供的函数和工具来处理和修复文本中的 Unicode 问题,从而确保文本在各种应用中的正确性和可靠性,这篇文章主要介绍了Python ftfy包的理解和使用,需要的朋友可以参考下
    2023-05-05
  • Python访问Redis的详细操作

    Python访问Redis的详细操作

    redis 提供两个类 Redis 和 StrictRedis, StrictRedis 用于实现大部分官方的命令,Redis 是 StrictRedis 的子类,用于向后兼用旧版本,接下来通过本文给大家分享Python访问Redis的详细操作,需要的朋友参考下吧
    2021-06-06
  • python实现简单反弹球游戏

    python实现简单反弹球游戏

    这篇文章主要为大家详细介绍了python实现简单反弹球游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • python3 发送任意文件邮件的实例

    python3 发送任意文件邮件的实例

    下面小编就为大家分享一篇python3 发送任意文件邮件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 使用python-magic和wxPython实现识别文档类型

    使用python-magic和wxPython实现识别文档类型

    这篇文章主要介绍了如何使用python-magic模块和wxPython库创建一个简单的文件列表应用程序,该应用程序可以显示所选文件夹中文件的类型,需要的可以参考下
    2023-08-08
  • python偏函数的实例用法总结

    python偏函数的实例用法总结

    在本篇文章里小编给大家整理的是一篇关于python偏函数的实例用法总结内容,有兴趣的朋友们可以跟着学习参考下。
    2021-07-07

最新评论