urllib.request模块常用类有
1.urllib.request.HTTPDefaultErrorHandler 《处理http响应错误》
2.urllib.request.HTTPRedirectHandler 《处理重定向》
3.urllib.request.HTTPCookieProcessor 《处理cookieHandler需要配合http.cookiejar使用》
例:
cookie = http.cookiejar.CookieJar()
cookieHandler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(cookieHandler)
opener.open(url)
cookie在这里,opener只是用于打开链接
4.urllib.request.HTTPPasswordMgr 《管理URL领域用户名密码的映射》
例:
map = urllib.request.HTTPPasswordMgrWithDefaultRealm()
map.add_password(NONE,url,"username","password")
5.urllib.request.ProxyHandler 《设置代理》
例:
proxy = urllib.request.ProxyHandler({"key":"value"})
opener = urllib.request.build_opener(proxy)
result = opener.oepn(url)
6.urllib.request.HTTPBasicAuthHandler 《处理URL领域用户名密码的映射并返回一个管理认证handler对象》
例:
map = urllib.request.HTTPPasswordMgrWithDefaultRealm()
map.add_password(NONE,url,"username","password")
authHandler = urllib.request.HTTPBasicAuthHandler(map)
7.urllib.request.OpenerDirector《串接在一起的 BaseHandler 打开 URL》
8.urllib.requset.Request() 《构造url请求抽象类》
urllib.requset.Request(url,data,headers,origin_req_host,unverifiable,mothod)
例:
url = "https://www.httpbin.org/post"
data = bytes(urllib.parse.urlencode({"key":"example"}),encoding="utf-8")
headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"}
origin_req_host = 略
unverifiable = 略
method = "post"
request = urllib.requset.Request(url,data,headers,method)
result = urlib.request.urlopen(request)
urllib.request模块常用类函数有
1.urllib.request.urlopen() 《打开统一资源定位地址 url》
例:
urllib.request.urlopen("https://www.baidu.com") 《无参数例子》
urllib.request.urlopen("https://www.httpbin.org/post",data=data) 《带data参数
例子》
data=bytes(urllib.parse.urlencode({"key":"example"}),encoding="utf-8") 《带
参数例子data值》
urllib.request.urlopen("https://www.baidu.com/get",timeout=1) 《带timeout参
数例子》
2.urllib.request.build_opener() 《返回一个 OpenerDirector实例,以接受的handler参数决定要处理的实际Handler类》
例:处理HTTPBasicAuthHandler管理认证Handler
map = urllib.request.HTTPPasswordMgrWithDefaultRealm
map.add_password(NONE,url,"username","password")
authHandler = urllib.request.HTTPBasicAuthHandler(map)
opener = urllib.request.build_opener(authHandler)
reusult = opener.open(url)