Python urllib和urllib2模块学习(三)

时间:2021-09-07 05:16:29

  build_opener()详解:

  1.urllib2.urlopen()函数不支持验证、cookie或者其它HTTP高级功能,要支持这些功能,必须使用build_opener()函数创建自定这句话的Opener对象。

  代码如下:

  build_Opener([handler1[handle2,...]])

  参数handler是Handler实例,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等。

  build_opener ()返回的对象具有open()方法,与urlopen()函数的功能相同。

  如果要修改http报头,可以用:

  import urllib2

  opener = urllib2.build_opener()

  opener.addheaders =[('User-agent','Mozilla/5.0')]

  opener.open('http://www.example.com/')

  2.install_opener(opener)

  安装不同的opener对象作为urlopen()使用的全局opener。

  

  3. 密码验证(HTTPBasicAuthHandler)

  HTTPBasicAuthHandler()处理程序可用add_password()来设置密码。

  

  4.cookie处理(HTTPCookieProcessor)

  代码如下:

  import urllib2,cookielib

  cookie = cookielib.CookieJar()

  cookiehand = urllib2.HTTPCookieProcessor(cookie)

  opener = urllib2.build_opener(cookiehand)

  

  5. 代理(ProxyHandler)

  ProxyHandler(proxies)参数proxies是一个字典,将协议名称(http,ftp)等映射到相应代理服务器的URL。