PythonBaby

导航

urllib库

  1. urlopen函数
    urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
    
    1. url 参数:目标资源在网路中的位置。可以是一个表示URL的字符串(如:http://www.baidu.com/);也可以是一个urllib.request对象,详细介绍请跳转
    
    2. data参数:data用来指明发往服务器请求中的额外的参数信息(如:在线翻译,在线答题等提交的内容),data默认是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。
    
    3. timeout:设置网站的访问超时时间
    
    4. cafile、capath、cadefault 参数:用于实现可信任的CA证书的HTTP请求。(基本上很少用)
    
    5. context参数:实现SSL加密传输。(基本上很少用)

     

  2. urlretriieve函数
    urlretrieve(url, filename=None, reporthook=None, data=None)
    
    参数url:下载链接地址
    参数filename:指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
    参数reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
    参数data:指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers) 元组,filename 表示保存到本地的路径,header表示服务器的响应头
    from urllib import request
    
    request.urlretrieve('http://www.baidu.com/','baidu.html')  # 下载网页
    request.urlretrieve('https://img1.baidu.com/it/u=256072866,3858595205&fm=26&fmt=auto','baidu.jpg')  # 下载图片

     

  3. 参数编码和解码函数
    from urllib import parse
    
    data = {'name':'张三','age':23}
    qs = parse.urlencode(data)  # 编码,将键值对转换成字符串
    print(qs)  # 结果:name=%E5%BC%A0%E4%B8%89&age=23
    
    # 解码
    # parse_qs 返回字典
    # parse_qsl 返回列表
    print(parse.parse_qs(qs))  # 结果:{'name': ['张三'], 'age': ['23']}
    print(parse.parse_qsl(qs))  # 结果:[('name', '张三'), ('age', '23')]

     

  4. 字符串编码和解码
    s = '张三'
    print(parse.quote(s))  # 只对一个字符串进行urlencode转换
    print(parse.unquote(s))  # 解码

     

  5. urlparse和urlsplit函数
    urlparse
    将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段。
    
    urlparse.urlsplit
    和urlparse差不多,将url分为5部分,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。

     

posted on 2021-10-18 21:39  PythonBaby  阅读(51)  评论(0)    收藏  举报