urllib2 解析

2010年11月20日 | 分类: 兴趣所在 | 标签: python

概述

urllib2中的核心类:
Request :一个具体的url请求,包含了请求的所有信息,不仅仅试用于http协议
OpenerDirector:与BaseHandler组合,通过组合不同得handler处理不同的请求
BaseHandler :参与完成请求处理的类,不同的请求处理都继承这个类

在urllib2中,一次请求被分为三个过程,分别是request,open,response
request:目的在于构造本次请求Request对象所需得所有信息,如http协议中的header信息
open:处理具体请求的过程,封装Request对象,调用更底层的类完成请求并返回response
response:对返回的Response对象做处理
当然后有一个error处理的过程,但这个不是主动触发的。

OpenerDirector

因为每次请求的具体实现是不同的handler,而且一次请求可能由很多handler组成。所以实现这一耦合机制的类就是OpenerDirector,这个类可以注册(添加)各种不同的handler用来帮助处理一次请求。通常来说handler中的命名规则为 protocol_request|open|response,这分别对应不同协议的三个过程。还是直接上代码,写了一点中文的注释。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。