p.s.高产量博主,点个关注不迷路!
目录
I.handler处理器的作用
II.handler处理器的使用方法
首先简单介绍一下handler处理器:handler处理器是继urlopen()方法之后又一种模拟浏览器向服务器发起请求的方法或技术。它的意义在于使用handler处理器,能够携带代理ip,这为对抗反爬机制提供了一种策略(很多的网站会封掉短时间多次访问的ip地址)。
下面是handler处理器的具体使用方法,其中不含代理ip的部分,代理ip这部分将在下一篇笔记中介绍。
# handler处理器的基础使用
# 需求:使用handler访问百度 获取网页源码
import urllib.request
url = 'http://www.baidu.com'
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
}
request = urllib.request.Request(url = url,headers = headers)
# handler build_opener open
# 第一步:获取handler对象
handler = urllib.request.HTTPHandler()
# 第二步:通过handler获取opener对象
opener = urllib.request.build_opener(handler)
# 第三步:调用open()函数
response = opener.open(request)
content = response.read().decode('utf-8')
print(content)
代码的步骤很清晰,我们可以简化整个过程为三个步骤:首先通过urllib库新建一个handler对象,而后通过urllib库的build_opener()方法新建一个opener对象,其中build_opener()要传入handler对象,最后通过opener的open()方法,获取响应,传参是我们的request定制请求对象。