做爲一個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