百度翻譯介面例項解析

2021-08-20 13:39:06 字數 2032 閱讀 4803

本例項採用python3進行編寫

獲取 token 和 gtk **如下

# 請求頭非常重要,在請求 fanyi.baidu.com 這個頁面的時候需要傳遞

header =

# 獲取網頁原始碼

html = requests.get('', headers=header)

html.encoding = 'utf-8'

# 正則匹配 gtk

matches = re.findall("window.gtk = '(.*?)';", html.text, re.s)

for match in matches:

gtk = match

if gtk == "":

print('get gtk fail.')

exit()

print('gtk = ' + gtk)

# 正則匹配 token

matches = re.findall("token: '(.*?)'", html.text, re.s)

for match in matches:

token = match

if token == "":

print('get token fail.')

exit()

print('token = ' + token)

signcode = 'function a(r,o)return r}var c=null;var hash=function(r,_gtk)for(var s=h,u="+-a^+6",l="+-3^+b+-f",s=0;slength;s++)s+=d[s],s=a(s,u);return s=a(s,l),s^=i,0>s&&(s=(2147483647&s)+2147483648),s%=1e6,s.tostring()+"."+(s^h)}'

source = '今天天氣怎麼樣'

sign = execjs.compile(signcode).call('hash', source, gtk)

print('source = ' + source + ', sign = ' + sign)

有了 token 和 sign,我們就可以開始構建請求了

先來看乙個可以正常返回結果的請求

/v2transapi?from=zh&to=en&query=%e4%bb%8a%e5%a4%a9%e5%a4%a9%e6%b0%94%e6%80%8e%e4%b9%88%e6%a0%b7&transtype=translang&******_means_flag=3&sign=719145.924184&token=187678c6ec320a5f5e4e0620799970e5

接下來非常重要的是,千萬不要使用 post 請求 /v2transapi 這個介面,會返回 998,會返回 998,會返回 998

具體原因不太清楚

我們需要做的是,按照正常的請求位址拼接乙個我們需要的鏈結,然後 everything is ok~

請求**如下

# 請求介面

fromlanguage = 'zh'

tolanguage = 'en'

v2transapi = '/v2transapi?from=%s&to=%s&query=%s' \

'&transtype=translang&******_means_flag=3&sign=%s&token=%s' % (fromlanguage, tolanguage, urllib.parse.quote(source), sign, token)

print(v2transapi)

translate_result = requests.get(v2transapi, headers=header)

print(translate_result.text)

百度翻譯 介面使用例項

獲取目標url所列印的內容 static function language text url else return file contents 定義需要翻譯的內容 title 你好 驗證是否為漢字 相容gb2312,utf 8 if preg match x7f xff title else 結...

百度翻譯介面

public class translateacy extends activity implements onclicklistener public void initview private handler inshandler new handler 翻譯 private void tran...

尋找百度翻譯引數,實現百度翻譯

author runsen 首先要分析瀏覽器是怎麼傳送請求的。構造請求 找到關鍵請求之後,就要分析請求,然後去構造請求。分析請求有一下幾個要素,url,請求方法,請求頭,請求引數。請求引數有七個,可以通過反覆請求然後比較的方法得出from,to是表示翻譯語言的,transtype,means fla...