做为一个Python菜鸟,以前一直懵懂于urllib和urllib2,觉得2是1的升级版。今天看到老外写的一篇《Python: difference between urllib and urllib2》才明白其中的区别。 html
You might be intrigued by the existence of two separate URL modules in Python -urllib
and urllib2
. Even more intriguing: they are not alternatives for each other. So what is the difference between urllib
and urllib2
, and do we need them both? python
urllib
and urllib2are both Python modules that do URL request related stuff but offer different functionalities. Their two most significant differences are listed below:
urllib 和urllib2都是接受URL请求的相关模块,可是提供了不一样的功能。两个最显著的不一样以下:ide
urllib2
can accept aRequest
object to set the headers for a URL request,urllib
accepts only a URL. That means, you cannot masquerade your User Agent string etc.urllib2能够接受一个Request类的实例来设置URL请求的headers,urllib仅能够接受URL。这意味着,你不能够假装你的User Agent字符串等。ui
urllib
provides theurlencode
method which is used for the generation of GET query strings,urllib2
doesn't have such a function. This is one of the reasons whyurllib
is often used along withurllib2
.urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为什么urllib常和urllib2一块儿使用的缘由。google
For other differences between urllib
and urllib2
refer to their documentations, the links are given in the References section.
Tip: if you are planning to do HTTP stuff only, check out httplib2, it is much better than httplib or urllib or urllib2. url
提示:若是你仅作HTTP相关的,看一下httplib2,比其余几个模块好用。spa