Python庫(kù)urllib與urllib2主要區(qū)別分析
作為一個(gè)Python菜鳥(niǎo),之前一直懵懂于urllib和urllib2,以為2是1的升級(jí)版。今天看到老外寫(xiě)的一篇《Python: difference between urllib and urllib2》才明白其中的區(qū)別
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?
你可能對(duì)于Python中兩個(gè)獨(dú)立存在的-urllib2和-urllib2感到好奇。更有趣的是:它們并不是可以相互代替的。那么這兩個(gè)模塊間的區(qū)別是什么,并且這兩個(gè)我們都需要嗎?
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請(qǐng)求的相關(guān)模塊,但是提供了不同的功能。兩個(gè)最顯著的不同如下:
•urllib2 can accept a Request 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可以接受一個(gè)Request類(lèi)的實(shí)例來(lái)設(shè)置URL請(qǐng)求的headers,urllib僅可以接受URL。這意味著,你不可以偽裝你的User Agent字符串等。
•urllib provides the urlencode method which is used for the generation of GET query strings, urllib2 doesn't have such a function. This is one of the reasons why urllib is often used along with urllib2.
urllib提供urlencode方法用來(lái)GET查詢(xún)字符串的產(chǎn)生,而urllib2沒(méi)有。這是為何urllib常和urllib2一起使用的原因。
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.
提示:如果你僅做HTTP相關(guān)的,看一下httplib2,比其他幾個(gè)模塊好用。
相關(guān)資料
這里還有個(gè)類(lèi)似的問(wèn)答:urllib urllib2 what is the difference ?
stackoverflow上也有:Should I use urllib or urllib2?
Python Docs
相關(guān)文章
Python原始字符串與Unicode字符串操作符用法實(shí)例分析
這篇文章主要介紹了Python原始字符串與Unicode字符串操作符用法,結(jié)合實(shí)例形式分析了Python針對(duì)原始字符與Unicode字符的操作符用法,需要的朋友可以參考下2017-07-07Python接口自動(dòng)化系列之unittest結(jié)合ddt的使用教程詳解
這篇文章主要介紹了Python接口自動(dòng)化系列之unittest結(jié)合ddt的使用教程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02Python爬蟲(chóng)使用Selenium+PhantomJS抓取Ajax和動(dòng)態(tài)HTML內(nèi)容
這篇文章主要介紹了Python爬蟲(chóng)使用Selenium+PhantomJS抓取Ajax和動(dòng)態(tài)HTML內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02利用python生成一個(gè)導(dǎo)出數(shù)據(jù)庫(kù)的bat腳本文件的方法
下面小編就為大家?guī)?lái)一篇利用python生成一個(gè)導(dǎo)出數(shù)據(jù)庫(kù)的bat腳本文件的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12Python使用redis pool的一種單例實(shí)現(xiàn)方式
這篇文章主要介紹了Python使用redis pool的一種單例實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了Python操作redis模塊實(shí)現(xiàn)共享同一個(gè)連接池的相關(guān)技巧,需要的朋友可以參考下2016-04-04Python讀取文件比open快十倍的庫(kù)fileinput
fileinput是Python的內(nèi)置模塊,但不少人對(duì)它都是陌生的。今天把fileinput的所有的用法、功能進(jìn)行詳細(xì)的講解,并列舉一些非常實(shí)用的案例,對(duì)于理解和使用它可以說(shuō)完全沒(méi)有問(wèn)題2021-10-10