构建请求Header是爬虫中的重要一环,在Python3中,可以通过设置urllib库中的Request头部信息,来模拟浏览器发送请求,实现数据的获取。
以下是构建请求Header的完整攻略:
1. 了解User-Agent
User-Agent是指浏览器的请求头信息中包含的代理信息,是服务器端识别访问请求来源的重要标识,不同的浏览器具有不同的User-Agent头信息。
了解User-Agent信息可以帮助我们构建合理的请求头部信息,从而避免被目标网站识别为爬虫而被封杀。
2. 设置请求Headers
在Python3中,通过设置urllib库中的Request头部信息,可以模拟浏览器发送请求。
from urllib import request
url = 'http://www.example.com'
req = request.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3')
response = request.urlopen(req)
print(response.read().decode('utf-8'))
以上代码中,首先定义了一个请求的URL地址,然后使用urllib库的Request模块指定请求的URL,最后加入Header头部信息,其中设置了User-Agent信息,模仿谷歌浏览器的User-Agent。
3. 示例说明
下面以爬取豆瓣电影top250为例进行说明。
import urllib.request
url = 'https://movie.douban.com/top250'
# 模拟浏览器发送请求
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
req = urllib.request.Request(url=url, headers=headers)
html = urllib.request.urlopen(req).read().decode('utf-8')
print(html)
以上代码中,首先定义了请求的URL地址,然后设置请求头部信息,使用urllib库的Request模块指定请求的URL,并加入Header头部信息,最后打印出豆瓣电影top250网页的HTML内容。
另外一个示例,可以参考爬取新浪新闻的代码:
import urllib.request
url = 'https://news.sina.com.cn/'
# 模拟浏览器发送请求
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
req = urllib.request.Request(url=url, headers=headers)
html = urllib.request.urlopen(req).read().decode('utf-8')
print(html)
以上代码中,同样是定义了请求的URL地址,设置请求头部信息,使用urllib库的Request模块指定请求的URL,并加入Header头部信息,最后打印出新浪新闻网页的HTML内容。
通过以上两个示例中的代码,可以看出,设置请求的Header头部信息是构建Python3爬虫的重要一环,不同的网站可能需要设置不同的Header头部信息,以便正常获取信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3爬虫怎样构建请求header - Python技术站