創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!
創(chuàng)新互聯(lián)提供高防物理服務(wù)器租用、云服務(wù)器、香港服務(wù)器、西部信息服務(wù)器租用等Python小中的urlopen()怎么使用?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
一. 簡(jiǎn)介
urllib.request.urlopen()函數(shù)用于實(shí)現(xiàn)對(duì)目標(biāo)url的訪(fǎng)問(wèn)。
函數(shù)原型如下:urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
url: 需要打開(kāi)的網(wǎng)址
data:Post提交的數(shù)據(jù)
timeout:設(shè)置網(wǎng)站的訪(fǎng)問(wèn)超時(shí)時(shí)間
直接用urllib.request模塊的urlopen()獲取頁(yè)面,page的數(shù)據(jù)格式為bytes類(lèi)型,需要decode()解碼,轉(zhuǎn)換成str類(lèi)型。
二. 函數(shù)參數(shù)介紹
1. url 參數(shù):目標(biāo)資源在網(wǎng)路中的位置??梢允且粋€(gè)表示URL的字符串(如:http://www.pythontab.com/);也可以是一個(gè)urllib.request對(duì)象,詳細(xì)介紹請(qǐng)?zhí)D(zhuǎn)
2. data參數(shù):data用來(lái)指明發(fā)往服務(wù)器請(qǐng)求中的額外的參數(shù)信息(如:在線(xiàn)翻譯,在線(xiàn)答題等提交的內(nèi)容),data默認(rèn)是None,此時(shí)以GET方式發(fā)送請(qǐng)求;當(dāng)用戶(hù)給出data參數(shù)的時(shí)候,改為POST方式發(fā)送請(qǐng)求。
3. timeout:設(shè)置網(wǎng)站的訪(fǎng)問(wèn)超時(shí)時(shí)間
4. cafile、capath、cadefault 參數(shù):用于實(shí)現(xiàn)可信任的CA證書(shū)的HTTP請(qǐng)求。(基本上很少用)
5. context參數(shù):實(shí)現(xiàn)SSL加密傳輸。(基本上很少用)
三. 返回處理方法詳解
urlopen返回對(duì)象提供方法:
read() , readline() ,readlines() , fileno() , close() :對(duì)HTTPResponse類(lèi)型數(shù)據(jù)進(jìn)行操作
info():返回HTTPMessage對(duì)象,表示遠(yuǎn)程服務(wù)器返回的頭信息
getcode():返回Http狀態(tài)碼。如果是http請(qǐng)求,200請(qǐng)求成功完成;404網(wǎng)址未找到
geturl():返回請(qǐng)求的url
四. 版本區(qū)別, 注意事項(xiàng)
python2和python3在導(dǎo)入urlrequest的方式都不一樣。
python2是這樣:import urllib2
而python3里面把urllib分開(kāi)了,分成了urlrequest和urlerror,在這里我們只需導(dǎo)入urlrequest即可。from urllib.request import urlopen
五. 實(shí)例
下面這個(gè)程序,實(shí)現(xiàn)了urlopen()函數(shù)的大部分功能,特別是data參數(shù)。data自定義,data格式轉(zhuǎn)換,數(shù)據(jù)的編碼encode()和解碼decode()。
#coding=utf-8 #Python3.x ''' 利用有道翻譯進(jìn)行在線(xiàn)翻譯 ''' import urllib.request import urllib.parse import json def traslate(words): #目標(biāo)URL targetURL = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null" #用戶(hù)自定義表單,words表示的是用戶(hù)要翻譯的內(nèi)容。這里使用的是dict類(lèi)型,也可以使用元組列表(已經(jīng)試過(guò)的)。 data = {} data['type'] = 'AUTO' data['i'] = words data['doctype'] = 'json' data['xmlVersion'] = '1.8' data['keyfrom'] = 'fanyi.web' data['ue'] = 'UTF-8' data['action'] = 'FY_BY_CLICKBUTTON' data['typoResult'] = 'true' #將自定義data轉(zhuǎn)換成標(biāo)準(zhǔn)格式 data = urllib.parse.urlencode(data).encode('utf-8') #發(fā)送用戶(hù)請(qǐng)求 html = urllib.request.urlopen(targetURL, data) #讀取并解碼內(nèi)容 rst = html.read().decode("utf-8") rst_dict = json.loads(rst) return rst_dict['translateResult'][0][0]['tgt'] if __name__ == "__main__": print("輸入字母q表示退出") while True: words = input("請(qǐng)輸入要查詢(xún)的單詞或句子:\n") if words == 'q': break result = traslate(words) print("翻譯結(jié)果是:%s"%result)
看完上述內(nèi)容,你們掌握Python小中的urlopen()怎么使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)頁(yè)名稱(chēng):Python小中的urlopen()怎么使用-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.rwnh.cn/article4/dpesoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站策劃、Google、網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容