学科分类
目录
网络爬虫

添加特定Headers—请求伪装

对于一些需要登录的网站,如果不是从浏览器发出的请求,我们是不能获得响应内容的。针对这种情况,我们需要将爬虫程序发出的请求伪装成一个从浏览器发出的请求。伪装浏览器需要自定义请求报头,也就是在发送Request请求时,加入特定的Headers。

添加特定Headers的方式很简单,只需要调用Request.add_header()即可。如果想查看已有的Headers,可以通过调用Request.get_header()查看。

下面是一个添加自定义请求头的例子,具体如下:

import urllib.request
url = "http://www.itcast.cn"
user_agent = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT
6.1; Trident/5.0)"}
request = urllib.request.Request(url, headers = user_agent)
# 也可以通过调用Request.add_header() 添加/修改一个特定的header
request.add_header("Connection", "keep-alive")
# 也可以通过调用Request.get_header()来查看header信息
# request.get_header(header_name="Connection")
response = urllib.request.urlopen(request)
print(response.code)  # 可以查看响应状态码
html = response.read()
print(html)

运行程序后,使用Fiddler查看HTTP请求,可以看到在发送的请求头中,已经包含了我们添加的Header。

点击此处
隐藏目录