Chinaunix首页 | 论坛 | 博客
  • 博客访问: 293331
  • 博文数量: 82
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 874
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-21 09:58
个人简介

traveling in cumputer science!!

文章分类

全部博文(82)

文章存档

2016年(13)

2015年(69)

我的朋友

分类: Python/Ruby

2015-11-29 14:40:40

1.urllib2的基本功能urlopen()
    这个方法返回一个request对象,栗子如下:

点击(此处)折叠或打开

  1. import urllib2

  2. req = urllib2.urlopen(url)
  3. realurl = req.geturl()
  4. info = req.info()
  5. code = req.getcode()
  6. print url
  7. print realurl
  8. print info
  9. print code
上面栗子中的url或者realurl可能会不同,因为初始连接可能会经过跳转。
2.urllib2中的opener
    我们能直接使用urllib2.urlopen(),是因为有一个默认的(default)opener对象,然而默认的它是适合普通应用的,如果要用一些高级点的功能像HTTPRedirectHandler、HTTPCookieProcessor,这时候就需要自定义一款opener啦,方法如下:

点击(此处)折叠或打开

  1. import urllib2

  2. newopener = urllib2.build_opener(xxxHandler, xxxHandler,...)
  3. req = newopener.open(url)
    或者把你需要的这些高级功能加入到默认的那个opener当中:

点击(此处)折叠或打开

  1. import urllib2

  2. newopener = urllib2.build_opener(xxxHandler,...)
  3. urllib2.install_opener(newopener)
  4. req = urllib2.urlopen(url)

3.urllib2 中的Handler
 OpenerDirector的对象openers使用各种Handler功能的对象方法handlers,所有的“繁重”工作由handlers处理。每个handlers知道如何通过特定协议打开URLs,或者如何处理URL打开时的各个方面。

参考链接:



阅读(1593) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~