zoukankan      html  css  js  c++  java
  • python3 urllib学习

    urllib 是Python内置的HTTP请求库

    • urllib.request 请求模块
    • urllib.error 异常处理模块
    • urllib.parse url解析模块
    • urllib.robotparser robots.txt解析模块

    urllib.request 请求模块

    request.urlopen() 
    常用参数:
    url
    data:如果有变成post方法,数据格式必须是application/x-www-from-unlencoded
    返回类文件句柄
    类文件句柄常用方法
    read(size):size=-1/none
    //读取
    readeline()
    //读取一行
    readelines()
    //读取多行
    close()
    //关闭
    getcode() //获取请求状态

    HTTPMessage方法
    文件句柄.info() 返回 httplib.HTTPMessage实例
    dir() 是一个内置函数,用于列出对象的所有属性及方法
    items()
    keys()
    values()

    request.urlretrieve()
    利用urlretrieve() 将数据下载到本地。
    常用参数:
    url
    finename 指定保存本地路劲
    reporthook 回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,显示下载进度
    data 指post到服务器的数据,该方法返回一个包含两个元素(filename,headers)的元组

    
    
    import sys,io
    from urllib import request,error

    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码

    def progress(blk, blk_size, total_size):
    print('%d/%d - %.02f%%' % (blk * blk_size, total_size, (float)(blk * blk_size) * 100 / total_size))

    def retrieve():
    try:
    request.urlretrieve("http://blog.kamidox.com","test.html",reporthook=progress)
    except error.URLError as e:
    print(e.reason)
    except error.HTTPError as e:
    print(e.errno)
    if __name__ =="__main__":
    retrieve()
     

     urllib.error 异常处理模块

       主要的错误方式就两种 URLError(错误信息)和HTTPError(错误编码).

    urllib.parse url解析模块

    • urllib.parse.urlparse

      将对应的URL解析成六部分,并以元组的数据格式返回来。

    •  urllib.parse.urlunparse

      拼接url

    • urllib.parse.urljoin

      用来拼接url的方法 或者叫组合方法,url必须为一致站点,否则后面参数会覆盖前面的host

           

    
    
    
    
        


  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/huy360/p/9717431.html
Copyright © 2011-2022 走看看