之前看python, 知道有urllib和urllib2两个模块,但是一直没有去深入学习, 也并不清楚为什么有了urllib2还要保留urllib,最近接触一点爬虫的知识,用到了urllib和urllib2, 在此做一点记录,记录这两个模块的区别以便日后查看.
urllib和urllib2模块都做与请求URl相关的操作,但是提供的功能却不尽相同.
urllib2.urlopen可以接受一个Request 对象或者url,而urllib.urlopen只能接受一个url
在交互解释器中查看两个函数的帮助可以看到>>> import urllib,urllib >>> help(urllib.urlopen) Help on function urlopen in module urllib: urlopen(url, data=None, proxies=None) Create a file-like object for the specified URL to read from. (END) >>> help(urllib2.urlopen) > Help on function urlopen in module urllib2: urlopen(url, data=None, timeout=<object object>) (END)
urllib 有urlencode,urllib2没有,这也是为什么总是urllib,urllib2常会一起使用的原因
- 如果只是单纯的下载或者显示下载进度,不对下载后的内容做处理等,比如下载图片,css,js文件等,可以用urlilb.urlretrieve()
如果是下载的请求需要填写表单,输入账号,密码等,建议用urllib2.urlopen(urllib2.Request())
在对字典数据编码时候,用到的是urllib.urlencode()