¶urllib库
¶request模块
¶BaseHandler类
Handler的父类,基本函数有default_open(),protocol_request()
¶Hander子类
¶HTTPDefaultErrorHandler
用于处理HTTP响应错误
¶HTTPRedirectHandler
用于处理重定向
¶HTTPCookieProcessor
用于处理cookies:
¶字典处理
使用http.cookiejar.CookieJar()创建cookie
使用HTTPCookieProcessor创建handle并传入cookie
build_opener()创建opener并open()
1 | import http.cookiejar |
¶保存cookie
使用MozillaCookieJar(filename)或LWPCookieJar(filename)创建cookie
使用cookie.save(ignore_expires=True, ignore_discard=True)保存文件
1 | import http.cookiejar |
¶读取cookie
使用cookie.load(filename, ignore_discard=True, ignore_expires=True)读取cookie文件
1 | import http.cookiejar |
¶ProxyHandler
设置代理
使用ProxyHandler,传入参数为字典
使用build_opener(handler)构建opener
使用open()函数打开
1 | from urllib.request import ProxyHandler, build_opener |
¶HTTPPasswordMgr
用于管理密码
¶HTTPBasicAuthHandler
用于管理认证:
构建HTTPPasswordMgrWithDefaultRealm对象p
使用add_password加入账号密码和url
构建HTTPBasicAuthHandler对象时参数p
使用build_opener创建opener对象
使用open()函数打开
1 | from urllib.request import HTTPPasswordMgrWithDefaultRealm, HTTPBasicAuthHandler, build_opener |
¶error模块
¶URLError类
继承自OSError类,是error模块的基类
具有reason属性表示异常内容
¶HTTPError类
URLError的子类,专门用来处理HTTP请求错误
属性:
- code: 返回HTTP状态码,404表示网页不存在,500表示服务器内部错误
- reason: 返回错误原因
- headers: 返回请求头
例如:
1 | from urllib import request, error |
¶注意
reason属性可能是一个对象而不是字符串,例如socket.timeout类
1 | import socket |