欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3中urlopen()的用法解讀

 更新時(shí)間:2023年03月14日 09:10:59   作者:網(wǎng)絡(luò)毒劉  
這篇文章主要介紹了Python3中urlopen()的用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、簡介

urllib.request.urlopen()函數(shù)用于實(shí)現(xiàn)對(duì)目標(biāo)url的訪問。

函數(shù)原型如下:

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) 

  • url:  需要打開的網(wǎng)址
  • data:Post提交的數(shù)據(jù)
  • timeout:設(shè)置網(wǎng)站的訪問超時(shí)時(shí)間

直接用urllib.request模塊的urlopen()獲取頁面,page的數(shù)據(jù)格式為bytes類型,需要decode()解碼,轉(zhuǎn)換成str類型。

二、函數(shù)參數(shù)介紹

  • url 參數(shù):目標(biāo)資源在網(wǎng)路中的位置??梢允且粋€(gè)表示URL的字符串;也可以是一個(gè)urllib.request對(duì)象,詳細(xì)介紹請?zhí)D(zhuǎn)
  • data參數(shù):data用來指明發(fā)往服務(wù)器請求中的額外的參數(shù)信息(如:在線翻譯,在線答題等提交的內(nèi)容),data默認(rèn)是None,此時(shí)以GET方式發(fā)送請求;當(dāng)用戶給出data參數(shù)的時(shí)候,改為POST方式發(fā)送請求。
  • timeout:設(shè)置網(wǎng)站的訪問超時(shí)時(shí)間
  • cafile、capath、cadefault 參數(shù):用于實(shí)現(xiàn)可信任的CA證書的HTTP請求。(基本上很少用)
  • context參數(shù):實(shí)現(xiàn)SSL加密傳輸。(基本上很少用)

三、返回處理方法詳解

urlopen返回對(duì)象提供方法:

read() , readline() ,readlines() , fileno() , close() :對(duì)HTTPResponse類型數(shù)據(jù)進(jìn)行操作

  • info():返回HTTPMessage對(duì)象,表示遠(yuǎn)程服務(wù)器返回的頭信息
  • getcode():返回Http狀態(tài)碼。如果是http請求,200請求成功完成;404網(wǎng)址未找到
  • geturl():返回請求的url

四、版本區(qū)別, 注意事項(xiàng)

python2和python3在導(dǎo)入urlrequest的方式都不一樣。 

python2是這樣:import urllib2 

而python3里面把urllib分開了,分成了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)行在線翻譯
'''
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"
    #用戶自定義表單,words表示的是用戶要翻譯的內(nèi)容。這里使用的是dict類型,也可以使用元組列表(已經(jīng)試過的)。
    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ā)送用戶請求
    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("請輸入要查詢的單詞或句子:\n")
        if words == 'q':
            break
        result = traslate(words)
        print("翻譯結(jié)果是:%s"%result)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python如何使用帶有?for?循環(huán)的?Lambda?函數(shù)

    Python如何使用帶有?for?循環(huán)的?Lambda?函數(shù)

    這篇文章主要介紹了如何在?Python?中使用帶有?for?循環(huán)的?Lambda?函數(shù),使用?Lambda?函數(shù)配合?for?循環(huán)可以讓代碼變得更加簡潔,但需要注意的是,Lambda?函數(shù)在語法上有一些限制,如果需要更復(fù)雜的邏輯,還需要使用普通函數(shù),感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2023-05-05
  • python如何進(jìn)行基準(zhǔn)測試

    python如何進(jìn)行基準(zhǔn)測試

    這篇文章主要介紹了python如何進(jìn)行基準(zhǔn)測試,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 使用python實(shí)現(xiàn)baidu hi自動(dòng)登錄的代碼

    使用python實(shí)現(xiàn)baidu hi自動(dòng)登錄的代碼

    使用python自動(dòng)登錄baidu hi的代碼,有需要的朋友可以參考下
    2013-02-02
  • 在Python 中實(shí)現(xiàn)圖片加框和加字的方法

    在Python 中實(shí)現(xiàn)圖片加框和加字的方法

    今天小編就為大家分享一篇在Python 中實(shí)現(xiàn)圖片加框和加字的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python調(diào)用攝像頭的示例代碼

    python調(diào)用攝像頭的示例代碼

    這篇文章主要介紹了python調(diào)用攝像頭的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • Django集成MongoDB實(shí)現(xiàn)過程解析

    Django集成MongoDB實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Django集成MongoDB實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 在Python的Django框架中編寫錯(cuò)誤提示頁面

    在Python的Django框架中編寫錯(cuò)誤提示頁面

    這篇文章主要介紹了在Python的Django框架中編寫錯(cuò)誤提示頁面,包括傳統(tǒng)的404頁面和設(shè)置連接中斷警告等,需要的朋友可以參考下
    2015-07-07
  • Python 中random 庫的詳細(xì)使用

    Python 中random 庫的詳細(xì)使用

    random庫是使用隨機(jī)數(shù)的Python標(biāo)準(zhǔn)庫,python中用于生成偽隨機(jī)數(shù)的函數(shù)庫是random,今天通過本文給大家分享Python 中random 庫的詳細(xì)使用,感興趣的朋友一起看看吧
    2021-06-06
  • 最近Python有點(diǎn)火? 給你7個(gè)學(xué)習(xí)它的理由!

    最近Python有點(diǎn)火? 給你7個(gè)學(xué)習(xí)它的理由!

    最近Python有點(diǎn)火?這篇文章主要為大家分享了7個(gè)你現(xiàn)在就該學(xué)習(xí)Python的理由,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Windows下Python2與Python3兩個(gè)版本共存的方法詳解

    Windows下Python2與Python3兩個(gè)版本共存的方法詳解

    這篇文章主要介紹了Windows下Python2與Python3兩個(gè)版本共存的方法,文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來一起看看吧。
    2017-02-02

最新評(píng)論