文档章节

python-35:urllib 和 urllib2 模块

达岭凹老大
 达岭凹老大
发布于 2015/12/01 18:56
字数 700
阅读 333
收藏 3

首先,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 没有的函数,但是现在没什么时间,过后再说吧

© 著作权归作者所有

达岭凹老大
粉丝 60
博文 83
码字总数 69643
作品 0
南宁
程序员
私信 提问
Python: difference between urllib and urllib2

作为一个Python菜鸟,之前一直懵懂于urllib和urllib2,以为2是1的升级版。今天看到老外写的一篇《Python: difference between urllib and urllib2》才明白其中的区别。 You might be intrigu...

DragonRiver2015
2013/12/08
183
0
Python:urllib 和urllib2之间的区别

作为一个Python菜鸟,之前一直懵懂于urllib和urllib2,以为2是1的升级版。今天看到老外写的一篇《Python: difference between urllib and urllib2》才明白其中的区别。 You might be intrigu...

索隆
2012/04/27
236
0
python Urllib库说明

说明:Urllib 是一个python用于操作URL的模块 python2.x ----> Urillib/Urllib2 python3.x ----> Urllib 一、变动说明: python2 中的Urllib和Urllib2 在python3 中合并为Urllib库,使用方法......

freshman411
2017/12/15
0
0
比较基础的urllib库来了解一下

什么是urllib库 Python内置的HTTP请求库 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse url解析模块 urllib.robotparser robots.txt解析模块 相比Python2的变化 在Pytho...

爱吃西瓜的番茄酱
2018/05/30
0
0
Python+url2爬虫技术

这回就编写一个小爬虫,知乎好像封闭查询了,那么我们换一个比较好爬取,而且不容易变动的网站,emmmm,起点网怎么样?爬取许多小说名字吧。 爬取分为,嗯,三个步骤大概,首先是用python的u...

材大难为用
01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
27分钟前
2
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
29分钟前
2
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
37分钟前
4
1
正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置

正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置 今天要用正则表达式实现匹配一个词出现一次或者不出现的情况,但是又不仅仅是这么简单的需求。先详细说下我这种情况吧,也许有...

Airship
43分钟前
5
0
第八讲:asp.net C# web 读取文件

本讲主要讲解如何在asp.net页面上传文件。 首先,前台页面: 其次,后台页面: 结果: 1、前台效果: 2、后台结果:

刘日辉
54分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部