内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

這篇文章將為大家詳細(xì)講解有關(guān)Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)公司,為您提供重慶網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)成都橡塑保溫等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司成立于2013年,提供專(zhuān)業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶(hù),為客戶(hù)提供賞心悅目的作品。 與客戶(hù)共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

運(yùn)行平臺(tái):Windows
Python版本:Python3.x
IDE:Sublime text3

    上一篇內(nèi)容,已經(jīng)學(xué)會(huì)了使用簡(jiǎn)單的語(yǔ)句對(duì)網(wǎng)頁(yè)進(jìn)行抓取。接下來(lái),詳細(xì)看下urlopen的兩個(gè)重要參數(shù)url和data,學(xué)習(xí)如何發(fā)送數(shù)據(jù)data

一、urlopen的url參數(shù) Agent

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

   url不僅可以是一個(gè)字符串,例如:http://www.baidu.com。url也可以是一個(gè)Request對(duì)象,這就需要我們先定義一個(gè)Request對(duì)象,然后將這個(gè)Request對(duì)象作為urlopen的參數(shù)使用,方法如下:

# -*- coding: UTF-8 -*-
from urllib import requestif __name__ == "__main__":
    req = request.Request("http://fanyi.baidu.com/")response = request.urlopen(req)
    html = response.read()
    html = html.decode("utf-8")
    print(html)

    同樣,運(yùn)行這段代碼同樣可以得到網(wǎng)頁(yè)信息??梢钥匆幌逻@段代碼和上個(gè)筆記中代碼的不同,對(duì)比一下就明白了。

    urlopen()返回的對(duì)象,可以使用read()進(jìn)行讀取,同樣也可以使用geturl()方法、info()方法、getcode()方法。

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

  • geturl()返回的是一個(gè)url的字符串;

  • info()返回的是一些meta標(biāo)記的元信息,包括一些服務(wù)器的信息;

  • getcode()返回的是HTTP的狀態(tài)碼,如果返回200表示請(qǐng)求成功。

    關(guān)于META標(biāo)簽和HTTP狀態(tài)碼的內(nèi)容可以自行百度百科,里面有很詳細(xì)的介紹。

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    了解到這些,我們就可以進(jìn)行新一輪的測(cè)試,新建文件名urllib_test04.py,編寫(xiě)如下代碼:

# -*- coding: UTF-8 -*-from urllib import requestif __name__ == "__main__":
    req = request.Request("http://fanyi.baidu.com/")
    response = request.urlopen(req)print("geturl打印信息:%s"%(response.geturl()))print('**********************************************')print("info打印信息:%s"%(response.info()))print('**********************************************')print("getcode打印信息:%s"%(response.getcode()))

    可以得到如下運(yùn)行結(jié)果:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

二、urlopen的data參數(shù)

    我們可以使用data參數(shù),向服務(wù)器發(fā)送數(shù)據(jù)。根據(jù)HTTP規(guī)范,GET用于信息獲取,POST是向服務(wù)器提交數(shù)據(jù)的一種請(qǐng)求,再換句話(huà)說(shuō):

    從客戶(hù)端向服務(wù)器提交數(shù)據(jù)使用POST;

    從服務(wù)器獲得數(shù)據(jù)到客戶(hù)端使用GET(GET也可以提交,暫不考慮)。

    如果沒(méi)有設(shè)置urlopen()函數(shù)的data參數(shù),HTTP請(qǐng)求采用GET方式,也就是我們從服務(wù)器獲取信息,如果我們?cè)O(shè)置data參數(shù),HTTP請(qǐng)求采用POST方式,也就是我們向服務(wù)器傳遞數(shù)據(jù)。

    data參數(shù)有自己的格式,它是一個(gè)基于application/x-www.form-urlencoded的格式,具體格式我們不用了解, 因?yàn)槲覀兛梢允褂胾rllib.parse.urlencode()函數(shù)將字符串自動(dòng)轉(zhuǎn)換成上面所說(shuō)的格式。

三、發(fā)送data實(shí)例

    向有道翻譯發(fā)送data,得到翻譯結(jié)果。

    1.打開(kāi)有道翻譯界面,如下圖所示:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    2.鼠標(biāo)右鍵檢查,也就是審查元素,如下圖所示:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    3.選擇右側(cè)出現(xiàn)的Network,如下圖所示:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    4.在左側(cè)輸入翻譯內(nèi)容,輸入Jack,如下圖所示:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    5.點(diǎn)擊自動(dòng)翻譯按鈕,我們就可以看到右側(cè)出現(xiàn)的內(nèi)容,如下圖所示:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    6.點(diǎn)擊上圖紅框中的內(nèi)容,查看它的信息,如下圖所示:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    7.記住這些信息,這是我們一會(huì)兒寫(xiě)程序需要用到的。

    新建文件translate_test.py,編寫(xiě)如下代碼:

# -*- coding: UTF-8 -*-from urllib import requestfrom urllib import parseimport jsonif __name__ == "__main__":#對(duì)應(yīng)上圖的Request URLRequest_URL = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.baidu.com/link'#創(chuàng)建Form_Data字典,存儲(chǔ)上圖的Form DataForm_Data = {}
    Form_Data['type'] = 'AUTO'Form_Data['i'] = 'Jack'Form_Data['doctype'] = 'json'Form_Data['xmlVersion'] = '1.8'Form_Data['keyfrom'] = 'fanyi.web'Form_Data['ue'] = 'ue:UTF-8'Form_Data['action'] = 'FY_BY_CLICKBUTTON'#使用urlencode方法轉(zhuǎn)換標(biāo)準(zhǔn)格式data = parse.urlencode(Form_Data).encode('utf-8')#傳遞Request對(duì)象和轉(zhuǎn)換完格式的數(shù)據(jù)response = request.urlopen(Request_URL,data)#讀取信息并解碼html = response.read().decode('utf-8')#使用JSONtranslate_results = json.loads(html)#找到翻譯結(jié)果translate_results = translate_results['translateResult'][0][0]['tgt']#打印翻譯信息print("翻譯的結(jié)果是:%s" % translate_results)

    這樣我們就可以查看翻譯的結(jié)果了,如下圖所示:

Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果

    JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,我們需要從爬取到的內(nèi)容中找到JSON格式的數(shù)據(jù),這里面保存著我們想要的翻譯結(jié)果,再將得到的JSON格式的翻譯結(jié)果進(jìn)行解析,得到我們最終想要的樣子。

關(guān)于“Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站欄目:Python3如何利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果
文章分享:http://www.rwnh.cn/article20/jicijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈自適應(yīng)網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣、App開(kāi)發(fā)、網(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)

微信小程序開(kāi)發(fā)
莱西市| 哈巴河县| 汨罗市| 寿光市| 临沭县| 黄骅市| 建水县| 金溪县| 巴彦淖尔市| 于都县| 德州市| 屯昌县| 隆子县| 娱乐| 昔阳县| 恭城| 普格县| 延吉市| 蒙自县| 杭州市| 天峨县| 建始县| 中卫市| 西吉县| 西安市| 杭州市| 合山市| 中江县| 尖扎县| 宜君县| 茌平县| 元朗区| 益阳市| 益阳市| 隆德县| 定边县| 仙居县| 安塞县| 綦江县| 增城市| 桐庐县|