1.urllib2的基本功能urlopen()
这个方法返回一个request对象,栗子如下:
-
import urllib2
-
-
req = urllib2.urlopen(url)
-
realurl = req.geturl()
-
info = req.info()
-
code = req.getcode()
-
print url
-
print realurl
-
print info
-
print code
上面栗子中的url或者realurl可能会不同,因为初始连接可能会经过跳转。
2.urllib2中的opener
我们能直接使用urllib2.urlopen(),是因为有一个默认的(default)opener对象,然而默认的它是适合普通应用的,如果要用一些高级点的功能像HTTPRedirectHandler、HTTPCookieProcessor,这时候就需要自定义一款opener啦,方法如下:
-
import urllib2
-
-
newopener = urllib2.build_opener(xxxHandler, xxxHandler,...)
-
req = newopener.open(url)
或者把你需要的这些高级功能加入到默认的那个opener当中:
-
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打开时的各个方面。
参考链接:
阅读(1593) | 评论(0) | 转发(0) |