HTTP请求头部(Header)是每一次HTTP请求的最前面,它包含了客户端(例如浏览器)向服务器发送请求的一些信息,比如请求的类型、请求的地址、浏览器信息、接受的数据类型等等,以及服务器向客户端发送响应的一些信息,比如响应的状态码、响应的数据类型等。在Python爬虫中,我们可以使用Header来让服务器认为我们的请求是正常的,从而避免服务器拒绝我们的请求。
常用Header字段
- User-Agent:用来标识客户端的身份,一般是浏览器类型,可以使用第三方库来生成,如fake_useragent。
- Accept:客户端可以接受的数据类型,比如text/html、application/json等。
- Accept-Encoding:客户端可以接受的压缩格式,比如gzip、deflate等。
- Connection:客户端与服务器之间的连接类型,比如keep-alive、close等。
- Cookie:客户端发送给服务器的Cookie,用于记录用户的登录状态等。
使用示例
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'keep-alive', 'Cookie': 'PHPSESSID=12345' } url = 'http://example.com/' response = requests.get(url, headers=headers)
上面的代码中,我们使用了一组headers来模拟一个正常的HTTP请求,其中User-Agent字段用来标识客户端的身份,Accept字段用来表示客户端可以接受的数据类型,Accept-Encoding字段用来表示客户端可以接受的压缩格式,Connection字段用来表示客户端与服务器之间的连接类型,Cookie字段用来发送Cookie给服务器。
在Python爬虫中,我们可以根据需要设置不同的Header来模拟不同的HTTP请求,从而达到爬取目标网站的目的。