
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即完全与我们自定义的相同了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)