zoukankan      html  css  js  c++  java
  • urllib2

    与urllib的区别

    urllib2提供了Request,可以更好的表达请求,可以定制url的头,提供更强大的功能,可以处理cookie, 鉴权可定制化,头信息的格式为字典

    urllib2不能完全替代urllib:urllib.urlencode()这个方法在urllib2没有所以一般urllib和urllib2混用


    urllib2.urlopen() 超时时间,时间内链接不到远程服务器就会直接报错
    还可以捕获HTTPError错误



    urllib2.Request()  



    urlopen不仅可以接受一个url作为参数,还可以接受一个Request对象作为参数



    还提供了比较重要的接口
    build_opener   可以让我们定制Http行为,它有一个open方法和urlopen同样效果

    参数Handler列表
    当Http请求应答回来的时候会像管道一样依次执行HTTPHandler,HTTPSHander,HTTPCookieProcessor
    返回openerDirector里面有open()方法处理原来链接里面的数据

    BaseHandler为

    使用什么代理
    不知道什么协议
    处理HTTP请求
    处理错误请求
    处理跳转
    支持FTP协议
    支持本地文件打开
    处理HTTP错误
    处理ssl
    当调用urllib2.urlopen()的时候会调用系统默认创建的Handler链


    urllib2.HTTPHandler(debuglevel=1)
    会把HTTP请求跟服务器交互信息都打印出来

    等于说是在Request头信息包括data信息都设置好,然后在build_opener下面的open打开,而build_opener可以定制HTTPHandler等信息,如这个例子显示跟服务器交互的信息,



    opener保存为全局使用
        

    所以我认为bulid_opener就是对urlopen的封装,可以使用它的install_opener对全局的opener进行同样处理



    cookies处理
    cookie是网页交互过程中很重要的隐式数据,有服务器生成保存在客户端,客户端请求时把cookie返回给服务器,服务器再进行解析。    

    比如说登录的之后,服务器生成cookie,客户端通过cookie告诉服务端已经登录上去了


    HTTPCookieProcessor是Basehandler的子类


    cookie的加法跟request 的加法不同,只需要加载头信息就可以了

    cookie在handler当中加载
    这里的open是带有cookie的信息的,第一次是open是返回到客户端,随后在用open的时候
    会将cookie自动上传到服务器,所以只需要在开始open一次,想登录验证一次就可以一直出于登录的状态了,cookie就相当于是登录凭证










































  • 相关阅读:
    文件类型的判断
    VS 2003 源码配置管理(subversion+apache)
    DataView
    sql server 挂起的文件操作
    关于权限设计的轻量级实现
    各种类型文件在SQL Server中存储的解决方案
    免费或开源的项目管理工具
    UML中的用例(Use Case)概念分析及实例
    大对象的存储
    用js实现同一页面多个运动效果
  • 原文地址:https://www.cnblogs.com/wuqingzangyue/p/5749874.html
Copyright © 2011-2022 走看看