python requests模块增加headers头

2016年4月18日 发表评论 阅读评论

一、请求头和响应头

http的headers头信息是分请求头和响应头之分的,请求头是客户端向服务端发送请求时,在头里带的内容,其一般包含:浏览器类型、语言、是否使用gzip压缩、传送的数据类型、用于认证的cookie或session值等。而响应头是服务器接到客户端的请求后,返回给客户端的信息,其一般包含页面过期时间、返回的数据类型、数据长度、一些cookie信息等。具体看下图:

requests-headers

二、requests查看响应头

响应头这个信息是我们无法改变的,这个是服务器端返回回来的,要修改响应头只能去服务器端修改。比如你访问百度,百度的服务器不会轻易给我们登陆,它返回的信息自然也是不我们能控制的。在request模块中,可以使用如下命令查看响应头:

>>> import requests
>>> r = requests.head('http://httpbin.org/get')
>>> print(r.headers)
{'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'Content-Encoding': 'gzip', 'Server': 'nginx', 'Connection': 'keep-alive', 'Access-Control-Allow-Credentials': 'true', 'Date': 'Thu, 23 May 2016 03:59:33 GMT', 'Access-Control-Allow-Origin': '*', 'Referrer-Policy': 'no-referrer-when-downgrade', 'Content-Type': 'application/json', 'X-Frame-Options': 'DENY'}
>>> r.headers['Content-Type']
'application/json'

三、自定义请求头

比如我们要模拟浏览器进行页面请求时,就可以将请求头里的信息加到自定义的headers参数里,具体如下:

headers = {'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
               'Accept - Encoding':'gzip, deflate',
               'Accept-Language':'zh-Hans-CN, zh-Hans; q=0.5',
               'Connection':'Keep-Alive',
               'Host':'zhannei.baidu.com',
               'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'}
r = requests.get('http://www.361way.com',headers=headers, timeout=3)




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.