这个urllib.request模块定义了一些函数和类,这些函数和类有助于在复杂的世界中打开URL(主要是HTTP) - 基本和摘要式的认证,重定向,cookies等等
urllib.request:
简介: 定义了一些函数和类,有助于在复杂的世界中打开URL,例如:基本和简要身份验证、重定向、cookie等等。
常用函数:
urlopen(url,data = None,[ timeout,] *,cafile = None,capath = None,cadefault = False,context = None):打开URL
参数:
url: 一个字符串 或者 Request对象。
data: 发送到服务器的数据
timeout: 设置超时, 单位:秒
后面三个官网有介绍
返回值: 上下文管理对象——context manager,但是对于不同的URL返回值略有不同,
对于HTTP和HTTPS URL: 返回值是http.client.HTTPResponse对象
对于获得数据、文本或者FTP等URL: 返回一个urllib.response.addinfourl对象。
pathname2url(path): 将路径转换为URL
url2pathname(path): 将url转换为路径
getproxies(): 获得代理服务器的url的字典
类:
Request(url,data = None,headers = {},origin_req_host = None,unverifiable = False,method = None):
参数:
url: 包含有效网址的字符串
data: 指定发送到服务器的附加数据
headers: 一般用来设置 User-Agent(浏览器标识),python2.6上默认为:"Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"urllib"Python-urllib/2.6"。
origin_req_host: 用户发起的原始请求的主机名或IP地址。
unverifiable: 不是很理解
method: 请求的方式,常见POST、GET
OpenerDirector: 该OpenerDirector课程通过BaseHandler链接打开URL 。它管理处理程序的链接,并从错误中恢复。
除此以外还有一些Handler的类,简而言之你可以把它理解为各种处理器,有专门处理登录验证的,有处理Cookies的,有处理代理设置的,利用它我们几乎可以做到任何 HTTP 请求中所有的事情。
首先介绍下 urllib.request.BaseHandler,它是所有其他 Handler 的父类,它提供了最基本的 Handler 的方法,例如 default_open() 、protocol_request() 等。
接下来就有各种 Handler 类继承这个 BaseHandler,列举如下:
HTTPDefaultErrorHandler 用于处理HTTP响应错误,错误都会抛出 HTTPError 类型的异常。
HTTPRedirectHandler 用于处理重定向。
HTTPCookieProcessor 用于处理 Cookie 。
ProxyHandler 用于设置代理,默认代理为空。
HTTPPasswordMgr 用于管理密码,它维护了用户名密码的表。
HTTPBasicAuthHandler 用于管理认证,如果一个链接打开时需要认证,那么可以用它来解决认证问题。
另外还有其他的 Handler 可以参考官方文档。
urllib.request 学习
最新推荐文章于 2022-08-09 10:38:15 发布