python3 标准库 urllib.request

urllib.request 模块包含一系列的函数和类应用,这些应用程序可以帮我们在复杂的环境中打开一些链接和网址(URL)(大部分是 http)操作的类型包括 基本的链接、摘要认证、url重定向、cookies 等。

urllib.request模块定义了以下功能:

urllib.request.urlopen( url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False,context=None

     1)参数 url 接受一个因特网链接,用字符串或 request 对象来表示

      2)参数 data 用来指定数据的提交方式,此参数必须为 byte 类型。data 也可以是 iterable对象,在这种情况下,消息实体的长度必须在 http header 中体现,目前 http 协议是唯一使用于此参数的协议,仅用于需要使用 POST 方式取代 GET 方式时。

            data 参数的书写应该符合标准格式:“application/x-www-form-urlencoded“

      3)可选参数 timeout 用来指定一个以秒为单位的时间值,超时无响应即终止链接。如果不指定此参数,就会使用全局的默认设置,此参数仅适用于 http、https、ftp 协议。

      4)可选参数 cafile 和 capath 用来为 HTTPS 请求指定一组受信任的 CA 证书。cafile 用来绑定单一的证书文件,capath 指向一个存在证书集合的目录

      5)cadefault:略

  urlopen函数总是返回一个类似文本类型的对象,可以接受上下文管理,它具有如下方法:

        geturl() ——返回 url的真实地址,常被用来判断接下来是否为链接重定向。

        info() —— 返回网址的元信息,例如标题。

        getcode() —— 返回响应的 HTTP 状态码(如 404)

  对于 HTTP 和 HTTPS 链接来说,这一函数返回一个稍加修改的 http.client.HTTPResponse() 函数对象,除了上述三种新方法外,msg 属性作为 reason 属性也包含了相同的信息—— 由服务器返回的 reason 语句,而不是response headers,因为它是HTTPResponse 文档中指定的。


在 3.2 版本里的改变:添加了 cafile, cadefault 和 capath

                                       如果 ssl 支持 Server Name 扩展的话,则可以支持HTTPS 虚拟主机

                                       现在 data 可以是一个可迭代对象

例子:

with urllib.request.urlopen( 'http://www.python.org/' ) as f:
print(f.read(100).decode('utf-8'))
......



urllib.request.install_opener( opener ).

安装一个 OpenerDirector 实例作为默认的全局 opener,如果你想让 urlopen 使用那个 opener,只需要安装它即可,或者你可以简单的调用 OpenerDirector.open() 代替的 urlopen() 即可。


。。。

.


你可能感兴趣的:(python标准库)