• urllib模块常用方法


    import urllib.parse
    
    ## urlparse() 对url进行解析,并对url按照一定格式进行拆分,返回一个包含6个字符串的元组(协议,位置,路径,参数,查询,判断), 可以将获得的元组强转为list来进行取值
    url = "http://www.baidu.com/s?username=zhiliao"
    print(urllib.parse.urlparse(url)) #ParseResult(scheme='http', netloc='www.baidu.com', path='/s', params='', query='username=zhiliao', fragment='')
    print(list(urllib.parse.urlparse(url)))
    
    
    
    ## urlunparse() 将上面urlparse解析后的数据组合成url
    data =['http','www.baidu.com','index.html','user','a=6','comment']
    print(urllib.parse.urlunparse(data))
    
    
    
    ## urlsplit() 和urlparse()用法一样,只不过返回结果中没有params这个属性
    
    
    
    ## urljoin()  url拼接,以后者为标准
    url1 = "https://www.baidu.com/index/index.html"
    url2 = "/index/add.html"
    a_url = urllib.parse.urljoin(url1, url2)
    print(a_url) #https://www.baidu.com/index/add.html
    
    
    
    ## urlencode() 将字典类型数据解析成查询字符串类型数据, 如果请求数中有中文则会进行编码
    data = {"name": "tony", "age": 25}
    qs = urllib.parse.urlencode(data)
    print(qs)  # name=tony&age=25
    
    
    
    ## parse_qs() 将查询字符串类型数据,解码成字典类型数据
    qs = "name=tony&age=25"
    print(urllib.parse.parse_qs(qs)) // {'name': ['tony'], 'age': ['25']}
    
    
    
    ## quote() 编码  unquote 解码
    encode_url = urllib.parse.quote("https://www.runoob.com/")  # 对一些符号进行编码
    print(encode_url)
    unencode_url = urllib.parse.unquote(encode_url)    # 解码
    print(unencode_url)
    
    
    
    ## quote_plus 编码 unquote_plus 解码
    print(urllib.parse.unquote('1+2'))  #不解码加号 '1+2'
    print(urllib.parse.unquote_plus('1+2'))  #把加号解码为空格'1 2'
    
    
    
    import urllib.request
    
    ## urlopen() 打开一个网页
    url = "www.baidu.com"
    print(urllib.request.urlopen(url).read())
    
    
    ## Request() 添加请求头,请求数据等
    headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
    }
    req = urllib.request.Request("http://www.baidu.com/",headers=headers)
    resp = urllib.request.urlopen(req)
    print(resp.read())
    
    
    
    ## build_opener()    urlopen底层函数,参考https://www.cnblogs.com/tinghai8/p/9044189.html
    # 第一步:构建一个HTTPHandler 处理器对象,支持处理HTTP请求
    http_handler = urllib.request.HTTPHandler()
    
    # 第二步:调用urllib2.build_opener()方法,创建支持处理HTTP请求的opener对象
    opener = urllib.request.build_opener(http_handler)
    
    # 第三步:构建 Request请求
    request = urllib.request.Request("http://www.baidu.com/")
    
    # 第四步:调用自定义opener对象的open()方法,发送request请求
    response = opener.open(request)
    
    # 第五步:获取服务器响应内容
    print(response.read())
    
    
    
    ## urlretrieve()  将网页保存到本地
    urllib.request.urlretrieve("http://www.baidu.com/", "baidu.html")
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    HDU 1263 二维map
    POJ 1442 优先队列
    Windows小白学习笔记
    毕设:高校考试信息数字化平台(六)——通过form外按钮提交表单
    毕设:高校考试信息数字化平台(五)——Spring框架中的登录问题
    毕设:高校考试信息数字化平台(四)——WEB-INF内部的jsp文件引用css
    毕设:高校考试信息数字化平台(三)——阿里云ECS的项目部署相关问题
    毕设:高校考试信息数字化平台(二)——Spring中静态文件无法获取的问题(Bootstrap样式无法显示)
    毕设:高校考试信息数字化平台(一)——SpringMVC的配置
    我的2018秋招之路(非面筋,纯属个人日记)
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/15793487.html
Copyright © 2020-2023  润新知