網路程式設計之urllib和urllib2

2022-05-24 19:39:10 字數 1313 閱讀 5017

在可供使用的網路庫中,urllib和urllib2可能是投入產出比最高的兩個。它們讓你能夠通過網路訪問檔案,就像這些檔案位於你的計算機一樣。

只需要乙個簡單的函式呼叫,就幾乎可將統一資源定位符(url)可指向的任何動作作為程式的輸入。

1.開啟遠端檔案

幾乎可以像開啟本地檔案一樣開啟遠端檔案,差別是只能使用讀取模式,以及使用模組urllib.request中的函式urlopen,而不是open(file)。

>>> from urllib.request import

urlopen

>>> from = urlopen('

')

如果連線到了網路,變數webpage將包含乙個類似於檔案的物件,這個物件與網頁相關聯。

注意: 

要是在沒有聯網的情況下嘗試使用模組urllib,可使用以file:打頭的url訪問本地檔案,如file:c:\text\somefile.txt(別忘記對反斜槓進行轉義)

urlopen返回的類似於檔案的物件支援方法close、read、readline和readlines,還支援迭代等

假設要提取剛才所開啟網頁中鏈結about的相對url,可使用正規表示式

>>>import

re>>>text =webpage.read()

>>>m = re.search(b'

about

',text,re.ignorecase)

>>>m.group(1)

'/about/

'注意;如果網頁發生變化,則需要修改使用的正規表示式

2.獲取遠端檔案

urlretrive('

' , '

c:\\python_webpage.html

' )

一些實用的函式

quote(string[, safe]):返回乙個字串,其中所有的特殊字元(在url中有特殊意義的字元)都已替換為對url友好的版本(比如將~ 替換為%7e)。如果要將包含特殊字元的字串用作url,這很有用。引數safe是乙個字串(預設為『/』),包含不應像這樣對其進行編碼的字元。

quote_plus(string[,safe]):類似於quote,但也將空格替換為加號。

unquote(string):與quote相反

unquote_plus(string[,safe]):與quote_plus相反

urlencode(query[,doseq]) :將對映(如字典)或由包含兩個元素的元組(形如(key,value))組成的序列轉換為「使用url編碼的」字串。這樣的字串可用於cgi查詢中。

網路程式設計 URI 和 URL

uri 是 uniformresource identifier 的縮寫 uniform 規定統一的格式 可方便處理多種不同型別的資源,而不用根據上下文環境來識別資源指定的訪問方式。另外,加入新增的協議方案 如 http 或 ftp 也更容易。resource 資源的定義是 可標識的任何東西 除了文...

python 網路程式設計urllib模組

一 操作網路傳送請求 from urllib.request import urlopen 傳送請求 from urllib.parse import urlencode 用來把字典形式轉換成k v形式 username dusir pwd 123456 get請求 url url1 usernan...

Java網路程式設計 URL

public string getprotocol 獲取該url的協議名 public string gethost 獲取該url的主機名 public string getport 獲取該url的的埠號 public string getpath 獲取該url的檔案路徑 public string...