• urllib 和 urllib2 对比学习 笔记一


    urlparse module
    
    1. urlparse.urlunparse()
        complex tuple into ure
    2. urlparse()
        split url into a fixed format.return tuple
    3.urlparse.urljoin()
        #合并域名和根路径
    
    urllib module
    
    1.urllib.urlopen()
        open url and return file object
        method:(read/readline/readlines/info/geturl/close)
    2.urllib.urlretrieve()
        download url to file
    3.urllib.quote()
        urllib.quote(urldata,safe='/')
        #与url.unquote_plus()
    4.urllib.urelencode()
        #接收字典的键值对,并将其编译成字符串,作为CGI请求的URL字符串的一部分.
       urlencode()里面必须是字典类型
    
        urllib.urlopen() 通过url 获取远程数据
    
        urlopen返回 一个类文件对象,它提供了如下方法:
        read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样;
        info():返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息
        getcode():返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到;
        geturl():返回请求的url;
    
        urllib.urlretrieve 直接将远程数据下载到本地
        参数说明:
        url:外部或者本地url
        filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
        reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
        data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。
    
    
    urllib2:
        urllib2.urlopen() 同上
    
        urllib2.request()
        Request总共三个参数,除了必须要有url参数,还有下面两个:
        1.data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。
        2.headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对
    
        # add_header()方法添加/修改一个HTTP报头
        request.add_header('User-Agent',user_agent#get_header()获取一个已有的HTTP报头的值,注意只能第一个字母大写,后面的要小写
        print request.get_header('User-agent'))
    
    
    urllib和urllib2的主要区别
    
     urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能,最显著的区别如下:
    (1)urllib仅可以接受URL,不能创建,设置headers的request类实例;
    (2)但是urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2则没有(这是urllib和urllib2经常一起使用的主要原因)
    (3)编码工作使用urllib的urlencode()函数,帮我们讲key:value这样的键值对转换成‘key=value’这样的字符串,解码工作可以使用urllib的unquote()
  • 相关阅读:
    docker搭建主从复制mysql
    mysql主从复制(mariadb)
    docker搭建mysql8.0
    docker安装mysql
    终端配置kxsw
    AJAX教程
    移动端常见布局
    css为什么需要精灵图
    元素的显示与隐藏
    css网页布局总结
  • 原文地址:https://www.cnblogs.com/lusix/p/10676948.html
Copyright © 2020-2023  润新知