• urllib模块


    urllib.request模块
        使用换头及代理打开网页
            # 需自行更改, 不用代理可以直接改成urllib.request.ProxyHandler({})
            opener = urllib.request.build_opener(urllib.request.ProxyHandler({'代理类型': '代理IP:端口号'})) 
            opener.addheaders = [('User-Agent', 'Mozilla......')]
            
            opener.open(url)
    
    
    
    urllib.urlretrieve模块
        直接将远程数据下载到本地。
    
        urllib.urlretrieve(url[, filename[, reporthook[, data]]])
        参数说明:
        url:外部或者本地url
        filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
        reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
        data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。
    
        例子:
            import urllib
            
            def cbk(a,b,c):
            
                '''回调函数
                @a: 已经下载的数据块
                @b: 数据块的大小
                @c: 远程文件的大小
                '''
                
                per = 100.0 * a * b / c
                if per > 100:
                    per = 100
                print('%.2f%%' % per)
                print('下载完成')
            
            addrs_url = get_pictrue(url)
            urllib.request.urlretrieve(addrs_url,filename,cbk)
            
            
    from urllib.parse import urlparse
        
        解析URL的内容    
            (1)rel =urlparse('http://www.baidu.com/index.html;user?id=5#comment')
            返回一个对象有6个属性
                                {
                                scheme = 'http'                 协议
                                netloc = 'www.baidu.com'         域名
                                path= 'index.html'                 路径
                                params = 'user'                 参数
                                query = 'id=5'                     查询条件
                                fragment = 'comment'            锚点
                                }            
            得出,标准链接格式:scheme://netloc/path;params?query#fragment
    2)rel = urlsplit('http://www.baidu.com/index.html;user?id=5#comment')#将path和params合为一个参数path
            返回一个元组,也可以通过属性来获取值:
                    (scheme = 'http',netloc = 'www.baidu.com',path= 'index.html;user',query = 'id=5',fragment = 'comment')
                    
                    print(rel[0])        #打印http
                    print(rel.netloc)    #打印www.baidu.com
        
        构造URL的内容    
            (1)urlunparse(['http','www.baidu.com','index.html','user','id=5','comment'])
            返回一个字符串
                    http://www.baidu.com/index.html;user?id=5#comment
    2)urlunsplit(['http','www.baidu.com','index.html;user','id=5','comment']) #将path和params合为一个参数path
            返回一个字符串
                  http://www.baidu.com/index.html;user?id=5#comment
            
        
            
            
  • 相关阅读:
    .net微信公众号开发——群发消息
    .net微信公众号开发——消息与事件
    .net微信公众号开发——基础接口
    .net微信公众号开发——快速入门
    如何实现ASP.NET中网站访问量的统计
    Asp.Net MVC3.0网站统计登录认证的在线人数
    SQL server 2008数据库的备份与还原(转)
    python创建多层目录的方式
    30款基本UX工具
    B树、B-树、B+树、B*树都是什么(转)
  • 原文地址:https://www.cnblogs.com/7134g/p/11510523.html
Copyright © 2020-2023  润新知