一開始我以為urllib2模塊單純是urllib模塊的升級版,因為我看到它們都有urlopen方法,但是經過查找資料,發現兩者差別還是很大的。
這是我在網上看到的總結:
- urllib2可以接受一個Request類的實例來設置URL請求的headers,urllib僅可以接受URL。這意味着,你不可以通過urllib模塊偽裝你的User Agent字符串等(偽裝瀏覽器)。
- urllib提供urlencode方法用來GET查詢字符串的產生,而urllib2沒有。這是為何urllib常和urllib2一起使用的原因。
- urllib2模塊比較優勢的地方是urlliburllib2.urlopen可以接受Request對象作為參數,從而可以控制HTTP Request的header部。
- 但是urllib.urlretrieve函數以及urllib.quote等一系列quote和unquote功能沒有被加入urllib2中,因此有時也需要urllib的輔助。