官方文档连接:https://docs.python.org/3/library/urllib.request.htmlhtml
urllib.request定义了如下函数:python
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
参数:服务器
打开url连接,能够是字符串或者是Request对象。函数
data必须是一个定义了向服务器所发送额外数据的对象,或者若是没有必要数据的话,就是None值。能够查阅Request获取详细信息。url
url.request模块在HTTP请求中使用了HTTP/1.1,而且包含了Connection:close头部。spa
可选的timeout参数指定阻止诸如链接尝试等操做的超时时间(以秒为单位)(若是未指定,将使用全局默认超时设置)。这实际上只适用于HTTP,HTTPS和FTP链接。代理
若是指定了context,则它必须是描述各类SSL选项的ssl.SSLContext实例。 有关更多详细信息,请参阅HTTPSConnection。code
可选的cafile和capath参数为HTTPS请求指定一组可信的CA证书。 cafile应指向包含一系列CA证书的单个文件,而capath应指向散列证书文件的目录。 更多信息能够在ssl.SSLContext.load_verify_locations()中找到。htm
cadefault参数被忽略。对象
返回值:
该函数老是返回一个能够做为context manager使用的对象,而且具备方法,例如;
geturl()-返回检索的资源的URL,一般用于肯定是否遵循重定向;
info()-以email.message_from_string()实例的形式返回页面的元信息(如headers)(可快速参考HTTP Headers);
getcode()-返回响应的HTTP状态码。
对于HTTP和HTTPS URL,此函数返回稍微修改的http.client.HTTPResponse对象。 除上述三种新方法以外,msg属性还包含与reason属性(服务器返回的缘由短语)相同的信息,而不是HTTPResponse文档中指定的响应标头。
对于由传统URLopener和FancyURLopener类明确处理的FTP,文件和数据URL和请求,此函数返回一个urllib.response.addinfourl对象。
在协议错误上引起URLError。
请注意,若是没有处理请求的handler,则可能返回None(尽管默认安装的全局OpenerDirector使用UnknownHandler来确保永不发生这种状况)。
另外,若是检测到代理设置(例如,若是设置了诸如http_proxy的* _proxy环境变量),则默认安装ProxyHandler,并确保经过代理处理请求。
来自Python 2.6及更早版本的遗留urllib.urlopen函数已中止使用; urllib.request.urlopen()对应于旧的urllib2.urlopen。 经过使用ProxyHandler对象能够得到经过将字典参数传递给urllib.urlopen完成的代理处理。