美文网首页
python3-urllib库

python3-urllib库

作者: bd4d0d78f248 | 来源:发表于2017-04-10 10:20 被阅读0次

    介绍

    python3 中的urllib 是一个包(package),有以下4个模块

    1. urllib.request:用于打开和读取URLs
    2. urllib.error:处理urllib.request抛出的异常错误信息
    3. **urllib.parse: **解析URLs
    4. urllib.robotparser:解析robots.txt 文件,不常用

    urllib.request

    以下简单介绍常用功能及用法。

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

    urlopen() 打开一个url地址,返回一个HTTPResponse 对象

    主要参数说明:
    url:请求的url地址或者Request对象。Request对象可以从class urllib.request.Request 获取
    data: 发送到服务器的数据,可以为空
    timeout:阻塞超时等待时间,单位秒
    cafile和capath:指定CA证书和路径,主要用于HTTPS的请求
    cadefault:可以忽略

    HTTPResponse 对象有以下方法

    • geturl():获取请求地址
    • info():获取服务端返回的Meta信息,主要有headers信息,如以下内容
    Server: GitHub.com
    Content-Type: text/html; charset=utf-8
    Last-Modified: Fri, 07 Apr 2017 11:33:39 GMT
    Access-Control-Allow-Origin: *
    Expires: Fri, 07 Apr 2017 12:02:03 GMT
    Cache-Control: max-age=600
    X-GitHub-Request-Id: A3C2:0231:3603991:47BCC18:58E77D63
    Content-Length: 1566
    Accept-Ranges: bytes
    Date: Sat, 08 Apr 2017 05:49:03 GMT
    Via: 1.1 varnish
    Age: 58
    Connection: close
    X-Served-By: cache-nrt6128-NRT
    X-Cache: HIT
    X-Cache-Hits: 1
    X-Timer: S1491630543.117421,VS0,VE0
    Vary: Accept-Encoding
    X-Fastly-Request-ID: 846820755a6faeb6754042ec399c2c46a5841410
    
    • getcode():获取请求状态码,如请求成功,状态码是 200

    urllib.request.Request 类

    class urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
    

    主要参数说明:
    url:可用的地址
    data:发送到服务器的数据
    headers:必须是一个字典,定义一些浏览器信息如:User-Agent
    method:发送请求的方法,如‘GET、POST’,data如果是空,则默认是GET方式请求;如果data不为空,则默认是POST方式请求

    urllib.parse 模块

    urllib.parse.urlparse(urlstring, scheme='', allow_fragments=True)
    

    将一个url解析为6部分,该函数返回一个元组

    >>> from urllib.parse import urlparse
    >>> o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
    >>> o   
    ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
                params='', query='', fragment='')
    >>> o.scheme
    'http'
    >>> o.port
    80
    >>> o.geturl()
    'http://www.cwi.nl:80/%7Eguido/Python.html'
    

    相关文章

      网友评论

          本文标题:python3-urllib库

          本文链接:https://www.haomeiwen.com/subject/wuiusttx.html