python库(4)—— urllib2

一、urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。他以urlopen函数的形式提供了一个很是简单的接口,这是具备利用不一样协议获取URLs的能力;它一样提供了一个比较复杂的接口来处理通常状况,例如:基础验证,cookies,代理和其余,它们经过handlers和openers的对象提供。python

二、urllib2.urlopen(url, data=None, timeout=None)
  参数
    url:打开一个url,能够是字符串(如同urllib.urlopen的url参数),或是一个Request对象(这是special的地方)
    data:向服务器传送的额外数据,仅http请求会用到这个参数。当data不为None时,说明此Http请求是Post,而不是Get。这个参数与urllib2.Request类的构造函数的data参数相同,详见urllib2.Request。通常不会设定这个参数,须要时会在urllib2.Request的构造函数处设置
    timeout:设置超时的时间,类型是整型,单位是秒;若是超过指定时间仍未获得所请求服务器的响应(例如因为网络环境差等缘由),则抛出异常,而不会无限制等待。适用于HTTP, HTTPS, FTP, FTPS
  返回值
    返回一个相似于文件描述符号(file-like)的对象,与urllib.urlopen的返回值相同,经过返回值也可使用geturl()和info()。浏览器

三、urllib2.Request类,通常使用方法是使用其构造函数获得一个Request对象:class urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
  表示一个URL请求
  参数
    url:一个URL字符串
    data:向服务器传送的额外数据,仅http请求会用到这个参数。当data不为None时,说明此Http请求是Post,而不是Get。其类型应为字符串,通常使用urllib.urlencode()对一个dict或tuple进行处理,获得该字符串。
    headers:请求头,类型是dict。除此以外,请求头能够在建立完Request对象后,经过该对象调用add_header(key, val)添加到对象中。经常使用方法是添加User-Agent请求头,冒充浏览器请求,用于哄篇服务器,由于一些服务器不容许程序访问。
    后两个参数通常用不到,再也不介绍
  返回值
    一个Request对象服务器

四、urllib2.OpenerDirector类
  当你获取一个URL时,你须要使用一个opener(OpenerDirector)。正常状况下咱们一直使用默认的opener,被urlopen使用,但你也能够建立自定义的openers。opener使用handler处理任务,全部的重活都交给这些handlers来作。每个handler知道怎么以特定的url协议打开url,或者怎么处理打开url的某些方面,如,HTTP重定向,或者HTTP cookie。cookie

五、def urllib2.build_opener([handler, ...])
  建立一个OpenerDirector对象,能够包含多个handlers
  参数
    handler, ...:urllib2提供不少handler来处理不一样的请求,经常使用的HTTPHandler,FTPHandler都比较好理解。这里提一下HTTPCookieProcessor,HTTPCookieProcessor是处理cookie的,在不少须要身份验证的请求中cookie是必不可少的,python中对cookie的操做是由cookielib模块来完成的,而这个handler只是调用了其方法,在request和response过程当中将cookie加到请求中和把cookie从响应中解析出来。
  返回值
    OpenerDirector对象网络

六、def urllib2.install_opener(opener)
  install_opener能设置一个全局opener对象,这意味着调用urlopen将会都用你刚安装的opener。
  参数
    opener:OpenerDirector对象函数

七、urllib2.HTTPCookieProcessor类,一般使用其构造函数获得一个对象,即一个handler:class urllib2.HTTPCookieProcessor([cookiejar])
  参数
    cookiejar:一个cookielib.CookieJar对象,经过构造函数cookielib.CookieJar()获得
  返回值
    HTTPCookieProcessor对象,即一个handlerui

相关文章
相关标签/搜索