urllib & urllib2

之前看python, 知道有urllib和urllib2兩個模塊,但是一直沒有去深入學習, 也並不清楚爲什麼有了urllib2還要保留urllib,最近接觸一點爬蟲的知識,用到了urllib和urllib2, 在此做一點記錄,記錄這兩個模塊的區別以便日後查看.
urllib和urllib2模塊都做與請求URl相關的操作,但是提供的功能卻不盡相同.

  1. urllib2.urlopen可以接受一個Request 對象或者url,而urllib.urlopen只能接受一個url
    在交互解釋器中查看兩個函數的幫助可以看到

    >>> import urllib,urllib
    >>> help(urllib.urlopen)
    
    Help on function urlopen in module urllib:
    
    urlopen(url, data=None, proxies=None)
        Create a file-like object for the specified URL to read from.
    (END)
    
    >>> help(urllib2.urlopen)
    >
    Help on function urlopen in module urllib2:
    
    urlopen(url, data=None, timeout=<object object>)
    (END)
  2. urllib 有urlencode,urllib2沒有,這也是爲什麼總是urllib,urllib2常會一起使用的原因

  3. 如果只是單純的下載或者顯示下載進度,不對下載後的內容做處理等,比如下載圖片,css,js文件等,可以用urlilb.urlretrieve()
    如果是下載的請求需要填寫表單,輸入賬號,密碼等,建議用urllib2.urlopen(urllib2.Request())
    在對字典數據編碼時候,用到的是urllib.urlencode()
發佈了30 篇原創文章 · 獲贊 26 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章