1.urllib2的基本功能urlopen()
这个方法返回一个request对象,栗子如下:
上面栗子中的url或者realurl可能会不同,因为初始连接可能会经过跳转。
2.urllib2中的opener
我们能直接使用urllib2.urlopen(),是因为有一个默认的(default)opener对象,然而默认的它是适合普通应用的,如果要用一些高级点的功能像HTTPRedirectHandler、HTTPCookieProcessor,这时候就需要自定义一款opener啦,方法如下:
或者把你需要的这些高级功能加入到默认的那个opener当中:
3.urllib2 中的Handler
OpenerDirector的对象openers使用各种Handler功能的对象方法handlers,所有的“繁重”工作由handlers处理。每个handlers知道如何通过特定协议打开URLs,或者如何处理URL打开时的各个方面。
参考链接:
https://docs.python.org/2/library/urllib2.html?highlight=urllib2#module-urllib2
http://www.jb51.net/article/57141.htm
http://www.nowamagic.net/academy/detail/1302879
http://www.jb51.net/article/46495.html
这个方法返回一个request对象,栗子如下:
点击(此处)折叠或打开
- import urllib2
- req = urllib2.urlopen(url)
- realurl = req.geturl()
- info = req.info()
- code = req.getcode()
- print url
- print realurl
- print info
- print code
2.urllib2中的opener
我们能直接使用urllib2.urlopen(),是因为有一个默认的(default)opener对象,然而默认的它是适合普通应用的,如果要用一些高级点的功能像HTTPRedirectHandler、HTTPCookieProcessor,这时候就需要自定义一款opener啦,方法如下:
点击(此处)折叠或打开
- import urllib2
- newopener = urllib2.build_opener(xxxHandler, xxxHandler,...)
- req = newopener.open(url)
点击(此处)折叠或打开
- import urllib2
- newopener = urllib2.build_opener(xxxHandler,...)
- urllib2.install_opener(newopener)
- req = urllib2.urlopen(url)
3.urllib2 中的Handler
OpenerDirector的对象openers使用各种Handler功能的对象方法handlers,所有的“繁重”工作由handlers处理。每个handlers知道如何通过特定协议打开URLs,或者如何处理URL打开时的各个方面。
参考链接:
https://docs.python.org/2/library/urllib2.html?highlight=urllib2#module-urllib2
http://www.jb51.net/article/57141.htm
http://www.nowamagic.net/academy/detail/1302879
http://www.jb51.net/article/46495.html