python呼叫有道翻譯介面

2021-09-28 16:59:09 字數 3254 閱讀 4251

**摘錄如下

僅供學習

import json

import random

import time

import hashlib

import requests

import re

import os

from urllib import parse

from urllib import request

deftrans

(content)

:# 等待使用者輸入需要翻譯的單詞

i = content

# 有道翻譯的url鏈結

url =

''# 構造有道的加密引數

client =

"fanyideskweb"

ts =

int(time.time()*

1000

) salt =

str(ts + random.randint(1,

10)) flowerstr =

"n%a-rkat5fb[gy?;n5@tj"

sign = hashlib.md5(

(client + i + salt + flowerstr)

.encode(

'utf-8'))

.hexdigest(

) bv =

'53539dde41bde18f4a71bb075fcf2e66'

# 建立form_data字典,儲存請求體

form_data =

# 需要翻譯的文字

form_data[

'i']

= i # 下面這些都先按照我們之前抓包獲取到的資料

form_data[

'from']=

'auto'

form_data[

'to']=

'auto'

form_data[

'smartresult']=

'dict'

form_data[

'client'

]= client

form_data[

'salt'

]= salt

form_data[

'sign'

]= sign

form_data[

'ts'

]= ts

form_data[

'bv'

]= bv

form_data[

'doctype']=

'json'

form_data[

'version']=

'2.1'

form_data[

'keyfrom']=

'fanyi.web'

form_data[

'action']=

'fy_by_realtime'

form_data[

'typoresult']=

'false'

# 對資料進行位元組流編碼處理

data = parse.urlencode(form_data)

.encode(

'utf-8'

)# 建立request物件

req = request.request(url=url, data=data, method=

'post'

)# 寫入header資訊

req.add_header(

'user-agent',)

req.add_header(

'cookie'

,'[email protected]'

) req.add_header(

'referer'

,'')# 傳入建立好的request物件

response = request.urlopen(req, timeout=5)

# 讀取資訊並進行位元組流解碼

html = response.read(

).decode(

'utf-8'

)print

(html)

# 把返回來的json字串解析成字典

translate_results = json.loads(html)

# 列印翻譯結果

translate_result = translate_results[

"translateresult"][

0][0

]['tgt'

]print

("翻譯的結果是:%s"

% translate_result)

return translate_result

trans(

'hey, how are you'

)def

copy

(file

, file2)

:for root, dirs, files in os.walk(

file):

# 遍歷檔案

for f in files:

time.sleep(random.random())

file_path = os.path.join(root, f)

fi =

open

(file_path,

'r', encoding=

'utf-8'

) fi2 =

open

(os.path.join(file2, f)

,'w'

, encoding=

'utf-8'

)while

true

: line = fi.readline(

)if line.startswith(

"c_"):

line = re.sub(r'([\w\s]+)\|([^|]+)([.\s]+)'

,lambda m: m.group(1)

+'|'

+ trans(m.group(2)

)+ m.group(3)

, line)

fi2.write(line)

ifnot line:

fi.close(

) fi2.close(

)print

(f)break

java呼叫有道翻譯介面

因為專案中需要有個中英互譯的小外掛程式,我們在網上搜尋了一下免費的翻譯介面。最終敲定,使用有道的翻譯介面。但是今天想再次測試一下的時候卻被告知,有道將不再提供免費的介面註冊,以前註冊過的介面也將在2017年12月31日停止使用。按照有道新的api,在有道智雲上註冊應用,新增自然翻譯例項,繫結應用,測...

python 有道翻譯 api介面

最近有乙個呼叫 有道詞典 api介面 的需求,就有了如下的 通過在 執行以下操作獲取 1.註冊賬號 2.建立應用 3.建立例項 4.應用繫結物件 secretkey ap2iyfaaadurymr4q7l8u73zgoc9vosz 中譯英 fromlang zh chs 譯文主體 tolang en...

有道翻譯介面問題

在呼叫有道翻譯api介面時,出現了如下錯誤 您要翻譯的內容是 english traceback most recent call last file d python.workspace hello world web spider translate test.py line 34,in tra...