urllib 和 urllib2 對比學習 筆記一

2022-08-02 18:00:09 字數 1795 閱讀 6569

urlparse module

1. urlparse.urlunparse()

complex tuple into ure

2. urlparse()

split url into a

fixed format.return

tuple

3.urlparse.urljoin()

#合併網域名稱和根路徑

urllib module

1.urllib.urlopen()

open url and

return file object

method:(read/readline/readlines/info/geturl/close)

2.urllib.urlretrieve()

download url to file

3.urllib.quote()

urllib.quote(urldata,safe='/'

) #與url.unquote_plus()

4.urllib.urelencode()

#接收字典的鍵值對,並將其編譯成字串,作為cgi請求的url字串的一部分.

urlencode()裡面必須是字典型別

urllib.urlopen() 通過url 獲取遠端資料

urlopen返回 乙個類檔案物件,它提供了如下方法:

read() , readline() , readlines() , fileno() , close() :這些方法的使用方式與檔案物件完全一樣;

info():返回乙個httplib.httpmessage 物件,表示遠端伺服器返回的頭資訊

geturl():返回請求的url;

引數說明:

url:外部或者本地url

filename:指定了儲存到本地的路徑(如果未指定該引數,urllib會生成乙個臨時檔案來儲存資料);

data:指post到伺服器的資料。該方法返回乙個包含兩個元素的元組(filename, headers),filename表示儲存到本地的路徑,header表示伺服器的響應頭。

urllib2:

urllib2.urlopen() 同上

urllib2.request()

request總共三個引數,除了必須要有url引數,還有下面兩個:

1.data(預設空):是伴隨 url 提交的資料(比如要post的資料),同時 http 請求將從 "

get"方式 改為 "

post

"方式。

2.headers(預設空):是乙個字典,包含了需要傳送的http報頭的鍵值對

# add_header()方法新增/修改乙個http報頭

request.add_header(

'user-agent

',user_agent#get_header()獲取乙個已有的http報頭的值,注意只能第乙個字母大寫,後面的要小寫

print request.get_header(

'user-agent'))

urllib和urllib2的主要區別(1

)urllib僅可以接受url,不能建立,設定headers的request類例項;(2

)但是urllib提供urlencode()方法用來get查詢字串的產生,而urllib2則沒有(這是urllib和urllib2經常一起使用的主要原因)

(3)編碼工作使用urllib的urlencode()函式,幫我們講key:value這樣的鍵值對轉換成『key=value』這樣的字串,解碼工作可以使用urllib的unquote()

網路程式設計之urllib和urllib2

在可供使用的網路庫中,urllib和urllib2可能是投入產出比最高的兩個。它們讓你能夠通過網路訪問檔案,就像這些檔案位於你的計算機一樣。只需要乙個簡單的函式呼叫,就幾乎可將統一資源定位符 url 可指向的任何動作作為程式的輸入。1.開啟遠端檔案 幾乎可以像開啟本地檔案一樣開啟遠端檔案,差別是只能...

urllib2使用總結

urllib2庫是涉及到url資源請求的常用庫 官方文件 urllib2 extensible library for opening urls 常用函式 urllib2.urlopen url data timeout cafile capath cadefault context url 可以是...

urllib2使用總結

urllib2是python的乙個獲取urls的元件。他以urlopen函式的形式提供了乙個非常簡單的介面,具有利用不同協議獲取urls的能力,同樣提供了乙個比較複雜的介面來處理一般情況。urllib2支援獲取不同格式的urls例如 ftp gopher等,並利用它們相關網路協議進行獲取。urlli...