500px 系列二:预备知识

内容纲要

urllib.request

根据 python 文档的说法,http.client 是个低级的 http 客户端,而 urllib.request 是高级的,那就用 urllib.request 吧

定义:打开 URL 的扩展库

说明:用来打开 URL(多数是 HTTP) 的函数和类,支持基本的或需认证的 URL,重定向,cookie 等

函数

  • urllib.request.urlopen(url, data=None, [timeout,]*, cafile=None, capath=None, cadefault=False, context=None)
    • url – string 或 Request 对象
    • data – 字节对象,需要发送给服务器的数据,None 表示没有要发送的数据,也可以是个可迭代对象,所以在请求头里 Content-Length 值必须指定。当前,仅 HTTP 请求使用 data 参数;如果提供该参数,则 HTTP 请求为 POST
      1. data 应是标准 application/x-www-form-urlencoded 格式的缓冲区。urllib.parse.urlencode() 函数接收一个 mapping 或 2元组序列并返回一个格式的 ASCII 字符串。作为参数,data 应编码为字节
      2. urllib.request 使用 HTTP/1.1 且包含 Connection:close 请求头
    • timeout – 可选参数,指定一个以秒为单位的超时时间(例如连接超时),如未指定则使用全局设定。仅用于 HTTP, HTTPS, FTP
    • context – 如果指定,必须是 ssl.SSLConext 实例,描述 SSL 的选项
    • cafile, capath – 可选参数,用于 HTTPS 请求的一组可信 CA 证书。cafile 是包含一个或多个 CA 证书的文件,与之相反,capath 是包含了一个或多个证书文件的目录
    • cadefault – 忽略该参数
    • 返回一个 context manager 对象,有以下方法
      1. geturl() – 返回获取的资源的 URL,用来判断是否跟随了一个跳转
      2. info() – 返回网页的元数据,例如头信息
      3. getcode() – 返回 HTTP 相应码
    • 对于 HTTP 和 HTTPS URL,返回一个 http.client.HTTPResponse 对象,除了上面的 3 个方法,还有 reason 属性
    • 对于 FTP,文件,返回 urllib.response.addinfourl 对象
    • 协议错误会导致 URLError
    • 可能返回 None,如果没有请求处理器的话
    • 如果检测到代理设置(例如,*_proxy 环境变量诸如 http_proxy),ProxyHandler 是默认安装的
    • urllib.urlopen 函数不再继续,urllib.request.urlopen() 和 urllib2.urlopen 是等效的
  • urllib.request.install_opener(opener)
    • 安装一个 OpenerDirector 实例作为默认的全局 opener。该方法只有你想要 urlopen 使用这个 opener 时才有必要,否则应该调用 OpenerDirector.open()
  • urllib.request.build_opener([handler,…])
  • 太多了不写了

  • urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
  • urllib.request.OpenerDirector
  • 太多了不写了

url.parse

对 url 及其参数进行编码

http.cookiejar

使 urllib.request 库支持 cookie

html.parse

解析 html

json

解析 josn

os 和 os.path

目录操作,包括创建目录及进入目录

500px 系列二:预备知识

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top
粤ICP备2020114259号 粤公网安备44030402004258