热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python2.7urlliburllib2学习

为什么80%的码农都做不了架构师?urllib模块提供一些简单的函数从url中读取数据,但是urllib没有高级定制功能,可以使用u

为什么80%的码农都做不了架构师?>>>   hot3.png

       urllib模块提供一些简单的函数从url中读取数据,但是urllib没有高级定制功能,可以使用urllib2。在urllib中使用最多的是urlopen函数。 

       urlopen(str_url,data)访问一个给定的url,然后返回一个只读的文件对象t,文件对象t可以使用read、readline、readlines、close等方法。t.geturl()返回t的url。在data为None,并且str_url为http协议时,urlopen发送一个GET请求,在data不是None时,str_url的协议必须是http,urlopen则发送的是POST请求,data的数据必须是URL编码形式,一般可以用urlencode函数处理data数据。

       urlencode(query)以query的url编码形式返回一个字符串,query可以是一个由(key/value)数据对组成的序列。这也是urllib用的比较多的函数。

       urlretrieve(str_url,filename,data)类似urlopen,但是返回的是一个数据对(f,m),f是一个指定到本地文件系统上的一个文件的路径,m是mimetools模块message类的一个实例。filename为None时,urlretrieve将把提取的数据复制到一个临时的本地文件中,而f是该临时文件的本地路径,如果filename不是None时,将把提取的数据复制到名为filename的文件中。

       urlcleanup()清除urlretrieve函数的缓存。

       urllib2比urllib功能要丰富,urllib2提供了一个和urllib.urlopen()类似的函数也叫urlopen。要想自定义urllib2,则在调用urlopen函数之前,使用build_opener()和install_opener()函数安装被组合到一个opener的任意数量的处理程序。

       handler类,这个类可以用作任何自定义类的超类。

       openerdirector类的实例d可以收集handler类的实例,并综合使用这些实例打开各种协议的url。通常可以通过build_opener函数创建实例d,然后调用Install_opener函数安装该实例。

       build_opener(handler)创建并返回一个opendirector类的一个实例和给定的参数handler,每个程序都可以是basehandler类的一个子类,可以不带参数进行实例化。

       install_opener(opener)安装opener作为进一步调用urlopen的打开程序,opener可以是request类的一个实例 

       urlopen(str_url,data)行为和urllib.urlopen一致,不过自定义行为是通过opener和handler类实现的。

       Request类,可以向urlopen函数传递Request类的一个实例,而不是一个url字符串,这样可以具体的实例化一个url。 Request(str_url,data,hander),str_url是request类这个实例具体化的一个url,在没有data和hander的情况下就和调用urllib2.urlopen(str_url)效果一样。如果data不为None,request将对新实例隐式调用其方法add_data(data)。hander必须是一个从首部名称到首部值的映射。

       urllib2.HTTPCOOKIEProcessor(COOKIEjar)一个管理http COOKIE的类。默认情况下使用COOKIElib.COOKIEJar对象。

        COOKIElib模块定义了一个可以自动加载http COOKIEs。为存储和管理COOKIE提供了客户端支持。该模块可以提供存储COOKIE的对象,以便urllib包配合使用。

        COOKIEJar()管理HTTP COOKIE值,存储HTTP请求生成的COOKIE,向传出的HTTP请求添加COOKIE对象,整个COOKIE都存储在内存中,对COOKIEjar实例进行回收后COOKIE的内容也将被回收。

        FileCOOKIEJar(filename)创建fileCOOKIEjar实例,将COOKIE存储到文件中,filename是文件名。 




转:https://my.oschina.net/guol/blog/95707



推荐阅读
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
author-avatar
乐思GO_361
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有