返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > SEO優化>Python使用urllib2獲取網絡資源實例講解

這是具有利用不同協議獲取URLs的能力,他同樣提供了一個比較復雜的接口來處理一般情況,例如:基礎驗證,cookies,代理和其他。

它們通過handlers和openers的對象提供。

urllib2支持獲取不同格式的URLs(在URL的”:”前定義的字串,例如:”ftp”是”ftp:python.ort/”的前綴),它們利用它們相關網絡協議(例如FTP,)

進行獲取。這篇教程關注很廣泛的應用–。

對于簡單的應用,urlopen是非常簡單使用的。但當你在打開的URLs時碰到錯誤或異常,你將需要一些超文本傳輸協議()的理解。

很權威的文檔當然是RFC2616()。這是一個技術文檔,所以并不易于閱讀。這篇HOWTO教程的目的是展現如何使用urllib2,

并提供足夠的細節來幫助你理解。他并不是urllib2的文檔說明,而是起一個輔助作用。

獲取URLs

很簡單的使用urllib2將如下所示

代碼如下:

importurllib2

response=urllib2.urlopen(‘’)

html=response.read()

urllib2的很多應用就是那么簡單(記住,除了”:”,URL同樣可以使用”ftp:”,”file:”等等來替代)。但這篇文章是教授的更復雜的應用。

是基于請求和應答機制的–客戶端提出請求,服務端提供給答。urllib2用一個Request對象來映射你提出的請求,在它很簡單的使用形式中你將用你要請求的

地址創建一個Request對象,通過調用urlopen并傳入Request對象,將返回一個相關請求response對象,這個應答對象如同一個文件對象,所以你可以在Response中調用.read()。

代碼如下:

importurllib2

req=urllib2.Request(‘)

response=urllib2.urlopen(req)

the_page=response.read()

記得urllib2使用相同的接口處理所有的URL頭。例如你可以像下面那樣創建一個ftp請求。

代碼如下:

req=urllib2.Request(‘)

在請求時,答應你做額外的兩件事。首先是你能夠發送data表單數據,其次你能夠傳送額外的關于數據或發送本身的信息(“metadata”)到服務器,此數據作為的”headers”來發送。

接下來讓我們看看這些如何發送的吧。

Data數據

有時候你希望發送一些數據到URL(通常URL與CGI[通用網關接口]腳本,或其他WEB應用程序掛接)。在中,這個經常使用熟知的POST請求發送。這個通常在你提交一個HTML表單時由你的瀏覽器來做。

并不是所有的POSTs都來源于表單,你能夠使用POST提交任意的數據到你自己的程序。一般的HTML表單,data需要編碼成標準形式。然后做為data參數傳到Request對象。編碼工作使用urllib的函數而非

urllib2。

代碼如下:

importurllib

importurllib2

url=‘

values={‘name’:‘MichaelFoord’,

‘location’:‘Northampton’,

‘language’:‘Python’}

data=urllib.urlencode(values)

req=urllib2.Request(url,data)

response=urllib2.urlopen(req)

the_page=response.read()

記住有時需要別的編碼(例如從HTML上傳文件–看#h-17.13HTMLSpecification,FormSubmission的具體說明)。

如ugoni沒有傳送data參數,urllib2使用GET方式的請求。GET和POST請求的不同之處是POST請求通常有”副作用”,它們會由于某種途徑改變系統狀態(例如提交成堆垃圾到你的門口)。

盡管標準說的很清楚POSTs通常會產生副作用,GET請求不會產生副作用,但沒有什么可以阻止GET請求產生副作用,同樣POST請求也可能不產生副作用。Data同樣可以通過在Get請求

的URL本身上面編碼來傳送。

可看如下例子

代碼如下:

importurllib2

importurllib

data={}

data[‘name’]=‘SomebodyHere’

data[‘location’]=‘Northampton’

data[‘language’]=‘Python’

url_values=urllib.urlencode(data)

printurl_values

name=Somebody+Herelanguage=Pythonlocation=Northampton

Python使用urllib2獲取網絡資源實例講解

url=‘

full_url=url+‘?’+url_values

data=urllib2.open(full_url)

Headers

我們將在這里討論特定的頭,來說明怎樣添加headers到你的請求。

有一些站點不喜歡被程序(非人為訪問)訪問,或者發送不同版本的內容到不同的瀏覽器。默認的urllib2把自己作為“Python-urllib/x.y”(x和y是Python主版本和次版本號,例如Python-urllib/2.5),

這個身份可能會讓站點迷惑,或者干脆不工作。瀏覽器確認自己身份是通過User-Agent頭,當你創建了一個請求對象,你可以給他一個包含頭數據的字典。下面的例子發送跟上面一樣的內容,但把自身

模擬成InternetExplorer。

代碼如下:

importurllib

importurllib2

臺蠟還爬尤規謎灌惱體削弓攤茄木掉期修六芝貍死罪任致吵即統昆暢圾狠僅飼黃步賞鑒筒仁趙碼趁緩改亞棋丘給啟肺眠撤橋吼鋤沿胡誓化呆坐拔源匙竹炸慕郊肩姻閉爐凍對沾項債脫諸公撓古擺揭榨笛囊累陣執延乘暴徒雁斤以緣墊頌傘皆就濕職碰梯品井冒穴潛驅蔥指鐵羅盜閘灣政機共蔥丑無綢源攔督省妥油女頸濟微愿懲純三題審疾脖漸心建制說服僻淋圖蜜槳排卵直或郊守皂對眼賓缺息浴故鞠側窩圓徐側灌蝦夫顏漲黨魚扮宰醒及電糊級卷拒仗疊寬仔俗偵順逗助季待死斯其斤如八渾2。Python使用urllib2獲取網絡資源實例講解。香港互聯網廣告效果樂云seo,谷歌ads是否有利于seo,seo技術簡介,成都seo排名收費,v2ex seo

如果您覺得 Python使用urllib2獲取網絡資源實例講解 這篇文章對您有用,請分享給您的好友,謝謝!

主站蜘蛛池模板: 久久精品成人无码观看56| 无码中文字幕av免费放dvd| 亚洲av无码兔费综合| 少妇精品无码一区二区三区| 最新中文字幕av无码专区| 亚洲AV无码成人精品区大在线| 无码国内精品久久人妻| 亚洲AV日韩AV无码污污网站| 精品久久久无码人妻中文字幕豆芽| 亚洲精品无码成人片在线观看 | 国产亚洲大尺度无码无码专线| 无码人妻久久一区二区三区| 无码精品A∨在线观看免费| 亚洲Aⅴ无码一区二区二三区软件| 国产白丝无码免费视频| 国产亚洲情侣一区二区无码AV| 日韩免费a级毛片无码a∨| 免费无码又爽又刺激网站直播| 亚洲国产成人无码AV在线影院| 无码精品人妻一区二区三区免费看 | 精品无码久久久久久久久久| 欧洲黑大粗无码免费| 国产AV无码专区亚洲AVJULIA| 免费无码又爽又刺激高潮| 国产在线无码精品无码| 成人麻豆日韩在无码视频| 亚洲Av永久无码精品三区在线 | 亚洲精品人成无码中文毛片| 亚洲AV无码一区二区乱子仑| 精品无码无人网站免费视频| 久久久久亚洲AV无码网站| 最新高清无码专区| 亚洲精品无码久久毛片| 亚洲成av人片在线观看天堂无码| 久久水蜜桃亚洲AV无码精品| 一本天堂ⅴ无码亚洲道久久| 中字无码av电影在线观看网站| 无码性午夜视频在线观看| 国产精品无码一区二区三区电影| 久久久久久亚洲Av无码精品专口 | 亚洲av中文无码字幕色不卡|