Python爬虫之Header

Python爬虫之Header,第1张

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

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

请求方法 URL HTTP版本

请求头信息

请求数据

<一个空行,请求的结束行>

常见的请求头:

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

User Agent :客户端软件类型

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

Referer :用户获取的Web页面

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

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

状态行

响应头

响应数据

常见的状态行:

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

常见的响应头:

Server :Web服务器程序的信息

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

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

Expires :请求文档过期时间

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

Content-type :数据MIME类型

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

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

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

def openUrl(url):

    import urllib2

    url = 'http://' + url

    req = urllib2.Request(url)

    //根据你自己的需要设置header,add_header方法中需要两个参数,key和value的键值对

    req.add_header('User-agent', 'Mozilla/5.0 (Windows NT 6.2 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1707.0 Safari/537.36')

    response = urllib2.urlopen(req)

    the_page = response.read()

    print the_page

    print response.geturl()

    print response.info()

    print response.headers

openUrl('xxx.xxx.xxx')

requests库默认的headers有自己的排序规则,假如我们需要完全按自己的规则自定义排序,可:

headers = {‘Host’: ‘’, ‘User-Agent’: ‘’}

session = requests.session()

session.headers.clear()

session.headers.update(headers),

此session所带的headers即完全与我们自定义的相同了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/7812870.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存