python-35:urllib 和 urllib2 模块
2015-12-01 00:00
435 查看
首先,urllib 和 urllib2 是python 自带的模块,所以我们可以通过官网文档来查看它们的详细信息,这里依然给出网址,感兴趣的同学可以看一下
urllib模块:http://python.usyiyi.cn/python_278/library/urllib.html
urllib2模块:http://python.usyiyi.cn/python_278/library/urllib2.html
这里还是简单的说一下吧,貌似python3中,urllib的库已经有了一些变化,而我们一直以来就是使用python2.7,所以python3的改变暂不考虑
这里提一个有意思的事情,常常有人会问,新手学python是学习python2还是python3好,毕竟两个版本之间的差别还是挺大的,这个问题我也曾经想过,最后在<笨方法学python>里面看到了一段话,大意是这样子的,可能会有人问你或者嘲笑你为什么学习python2而不去学习python3,你可以这样回答他,等到你电脑里面所有的程序都是用python3来编写的时候再和我说这件事
这是一个插曲,但是我为什么最后选择python2呢?因为我觉得虽然两个版本之间有差别,但是最基本的语法或者是一些函数是不会改变的,知道了python2的语法,剩下来的就是学习python3中的差异,而且就现在来说,python2的资料要远多于python3
啊又扯远了,现在来说说urllib 和 urllib2 这两个模块,它的作用我们已经知道了,盗用官方文档里面的描述来解释一下
"该模块提供了用于获取互联网数据的高层接口"
但是我觉得很纳闷了,按命名来说urllib2应该是urllib的升级版,借用一种说法可以叫 urllib plus,urllib里面的函数urllib2应该都有并且更强大才是啊,那为什么在很多时候还要用到urllib呢
主要的原因有以下几点
1. urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以通过urllib模块伪装你的User Agent字符串等(伪装浏览器)
2. urllib提供urlencode方法用来encode发送的data,而urllib2没有。这是为何urllib常和urllib2一起使用的原因
3. urllib2模块比较优势的地方是urlliburllib2.urlopen可以接受Request对象作为参数,从而可以控制HTTP Request的header部
4. urllib.urlretrieve函数以及urllib.quote等一系列quote和unquote功能没有被加入urllib2中,因此有时也需要urllib的辅助
我或许应该整理一个列表出来,看看哪些是urllib 有而 urllib2 没有的函数,但是现在没什么时间,过后再说吧
urllib模块:http://python.usyiyi.cn/python_278/library/urllib.html
urllib2模块:http://python.usyiyi.cn/python_278/library/urllib2.html
这里还是简单的说一下吧,貌似python3中,urllib的库已经有了一些变化,而我们一直以来就是使用python2.7,所以python3的改变暂不考虑
这里提一个有意思的事情,常常有人会问,新手学python是学习python2还是python3好,毕竟两个版本之间的差别还是挺大的,这个问题我也曾经想过,最后在<笨方法学python>里面看到了一段话,大意是这样子的,可能会有人问你或者嘲笑你为什么学习python2而不去学习python3,你可以这样回答他,等到你电脑里面所有的程序都是用python3来编写的时候再和我说这件事
这是一个插曲,但是我为什么最后选择python2呢?因为我觉得虽然两个版本之间有差别,但是最基本的语法或者是一些函数是不会改变的,知道了python2的语法,剩下来的就是学习python3中的差异,而且就现在来说,python2的资料要远多于python3
啊又扯远了,现在来说说urllib 和 urllib2 这两个模块,它的作用我们已经知道了,盗用官方文档里面的描述来解释一下
"该模块提供了用于获取互联网数据的高层接口"
但是我觉得很纳闷了,按命名来说urllib2应该是urllib的升级版,借用一种说法可以叫 urllib plus,urllib里面的函数urllib2应该都有并且更强大才是啊,那为什么在很多时候还要用到urllib呢
主要的原因有以下几点
1. urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以通过urllib模块伪装你的User Agent字符串等(伪装浏览器)
2. urllib提供urlencode方法用来encode发送的data,而urllib2没有。这是为何urllib常和urllib2一起使用的原因
3. urllib2模块比较优势的地方是urlliburllib2.urlopen可以接受Request对象作为参数,从而可以控制HTTP Request的header部
4. urllib.urlretrieve函数以及urllib.quote等一系列quote和unquote功能没有被加入urllib2中,因此有时也需要urllib的辅助
我或许应该整理一个列表出来,看看哪些是urllib 有而 urllib2 没有的函数,但是现在没什么时间,过后再说吧
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- 爬虫笔记
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- python-36:在下一个实例开始之前先闲聊几句