Python urllib和urllib2模組學習

來源:互聯網
上載者:User

標籤:

Python標準庫中有許多實用的工具類,但是在具體使用時,標準庫文檔上對使用細節描述的並不清楚,比如 urllib和urllib2 這個 HTTP 用戶端庫。這裡總結了一些 urllib和urlib2 庫的使用細節。

Python urllib 庫提供了一個從指定的 URL 地址擷取網頁資料,然後對其進行分析處理,擷取想要的資料。

一、urllib常用函數介紹:

1. urlopen()函數:即建立一個類檔案對象為指定的 url 來讀取。

可以使用help(urllib.urlopen)查看函數說明。

urlopen(url, data=None, proxies=None)
Create a file-like object for the specified URL to read from.

urlopen返回一個類檔案對象,它提供了如下方法:

read(),readline,readlines,fileno和close:  這些方法的使用和檔案對象一樣;

info(): 返回一個httplib.HTTPMessage對象,表示遠程伺服器返回的頭資訊。

getcode():返回Http狀態代碼,如果是http請求,200表示請求成功完成,404表示網址沒有找到。

getutl: 返回請求的url地址。

樣本:

>>>import urllib

>>>baidu = urllib.urlopen(‘http://www.baidu.com‘)

>>>baidu.read()

>>> print baidu.info()

輸出:

Date: Fri, 24 Apr 2015 05:41:40 GMT
Server: Apache
Cache-Control: max-age=86400
Expires: Sat, 25 Apr 2015 05:41:40 GMT
Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
ETag: "51-4b4c7d90"
Accept-Ranges: bytes
Content-Length: 81
Connection: Close
Content-Type: text/html

>>>for line in baidu:            #等價於read(),就像在操作本地檔案,將網頁資料列印出來。

    print line,

  baidu.close()

 

補充:

  • urllib.open的參數有特別要示,要遵循一些網路通訊協定,比如http,ftp,也就是說在網址的開頭必須要有http://或ftp://如:

  urllib.urlopen(‘http://www.baidu.com‘)

  urllib.urlopen(‘ftp://192.168.1.200‘)

  • 若要使用本地檔案,就需要在前面加filt關鍵字,如:

  urllib.urlopen(‘file:nowangic.py‘)

  urllib.urlopen(‘file:F:\test\helloworld.py‘)

 

2. urlretrieve()函數:直接將遠端資料下載到本地。

可以使用help(urllib.urlretvieve)查看函數說明

  Help on function urlretrieve in module urllib:

  urlretrieve(url, filename=None, reporthook=None, data=None)

  • 參數 finename 指定了儲存本地路徑(如果參數未指定,urllib會產生一個臨時檔案儲存資料。)
  • 參數 reporthook 是一個回呼函數,當串連上伺服器、以及相應的資料區塊傳輸完畢時會觸發該回調,我們可以利用這個回呼函數來顯示當前的下載進度。
  • 參數 data 指 post 到伺服器的資料,該方法返回一個包含兩個元素的(filename, headers)元組,filename 表示儲存到本地的路徑,header 表示伺服器的回應標頭。

 

 

 

Python urllib和urllib2模組學習

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.