python利用有道翻譯實(shí)現(xiàn)"語(yǔ)言翻譯器"的功能實(shí)例
實(shí)例如下:
import urllib.request
import urllib.parse
import json
while True:
content = input('請(qǐng)輸入需要翻譯的內(nèi)容(退出輸入Q):')
if content == 'Q':
break
else:
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/'
data = {}
data['type'] = 'AUTO'
data['i'] = content
data['doctype'] = 'json'
data['xmlVersion'] = '1.8'
data['keyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['action'] = 'FY_BY_CLICKBUTTON'
data['typoResult'] = 'true'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url, data)
html = response.read().decode('utf-8')
target = json.loads(html)
print('翻譯的結(jié)果:%s' % target['translateResult'][0][0]['tgt'])
程序執(zhí)行情況:

這里要注意的是兩個(gè)函數(shù)urllib.request.urlopen()與urllib.parse.urlencode()。
urllib.request.urlopen()其實(shí)不止一個(gè)參數(shù),有好幾個(gè)哦,其中第二個(gè)是data,data應(yīng)該是一個(gè)buffer的標(biāo)準(zhǔn)應(yīng)用程序/ x-www-form-urlencoded格式(python標(biāo)準(zhǔn)庫(kù)原文:data should be a buffer in the standard application/x-www-form-urlencoded format)。urllib.parse.urlencode()函數(shù)接受一個(gè)映射或序列集合,并返回一個(gè)字符串的格式(python標(biāo)準(zhǔn)庫(kù)原文:The urllib.parse.urlencode() function takes a mapping or sequence of 2-tuples and returns a string in this format)。我們可以看看urllib.parse.urlencode()的結(jié)果是什么樣的:

上圖的結(jié)果剛好與urllib.request.urlopen()的data參數(shù)的數(shù)據(jù)類型要求一致了。
注意,上面urlopen當(dāng)中的url,這個(gè)是分析有道翻譯頁(yè)面的真實(shí)的Request URL:


以上這篇python利用有道翻譯實(shí)現(xiàn)"語(yǔ)言翻譯器"的功能實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法
今天小編就為大家分享一篇pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Matplotlib繪圖基礎(chǔ)之動(dòng)畫繪制詳解
matplotlib的動(dòng)畫一直是一個(gè)強(qiáng)大但使用頻率不高的功能,通過(guò)動(dòng)畫來(lái)展示數(shù)據(jù)和模型的變化過(guò)程,可使數(shù)據(jù)的可視化更加生動(dòng)形象,下面就跟隨小編一起學(xué)習(xí)一下Matplotlib是如何繪制動(dòng)畫的吧2023-08-08
對(duì)Python中9種生成新對(duì)象的方法總結(jié)
今天小編就為大家分享一篇對(duì)Python中9種生成新對(duì)象的方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python astype(np.float)函數(shù)使用方法解析
這篇文章主要介紹了Python astype(np.float)函數(shù)使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Django中使用celery完成異步任務(wù)的示例代碼
本篇文章主要介紹了Django中使用celery完成異步任務(wù)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Python 生成一個(gè)從0到n個(gè)數(shù)字的列表4種方法小結(jié)
今天小編就為大家分享一篇Python 生成一個(gè)從0到n個(gè)數(shù)字的列表4種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
利用python庫(kù)在局域網(wǎng)內(nèi)傳輸文件的方法
今天小編就為大家分享一篇利用python庫(kù)在局域網(wǎng)內(nèi)傳輸文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python list和str互轉(zhuǎn)的實(shí)現(xiàn)示例
這篇文章主要介紹了Python list和str互轉(zhuǎn)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python中如何使用sqlite3操作SQLite數(shù)據(jù)庫(kù)詳解
這篇文章主要介紹了Python中SQLite數(shù)據(jù)庫(kù)的使用,包括連接數(shù)據(jù)庫(kù)、創(chuàng)建表、數(shù)據(jù)增刪改查、事務(wù)管理和參數(shù)化查詢等,并提供了操作示例,需要的朋友可以參考下2025-03-03

