Handler处理器定制更高级的请求头(随着业务逻辑的复杂,请求对象的定制已经满足不了我们的需求
使用handler来访问百度,获取百度网页代码(这里只给出了基本的用法)
handler使用的三个步骤
1)获取handler对象
2)获取build_opener对象
3)调用open方法
from cgitb import handler
import urllib.request
url='http://www.baidu.com'
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
req=urllib.request.Request(url=url,headers=headers)
#handler使用的三个步骤handler build_opener open
#(1)获取handler对象
handler=urllib.request.HTTPHandler()
#(2)获取opener对象
opener=urllib.request.build_opener(handler)
#(3)调用open方法
response=opener.open(req)
content=response.read().decode('utf-8')
with open('baidu.html','w')as f:
f.write(content)