程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python利用百度翻譯後台,進行本地翻譯

編輯:Python

目錄

思路

過程

代碼實現

代碼一(有點錯誤)

結果

代碼二

結果


思路

在百度翻譯上,進行翻譯,點開檢查F12,可以在網絡那邊看到數據傳輸情況,看到後台的翻譯網址,我們可以偽裝前台的百度翻譯網站,發送一樣的數據給翻譯後台,然後獲取後台傳輸回來的翻譯信息。百度翻譯這邊需要偽裝下發送信息,偽裝自己是個浏覽器。不過有道翻譯就不需要偽裝是浏覽器了。

過程

先小翻譯

 找到POST

右側有相應翻譯的POST

 

獲取後台翻譯網址

獲取請求字段

代碼實現

代碼一(有點錯誤)

from urllib import request,parse
import json
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/68.0.3440.75 Safari/537.36'}
content=input('請輸入你要翻譯的內容:')
dict={'kw':content}#需要翻譯的內容
new_name=parse.urlencode(dict)#進行轉碼
url='https://fanyi.baidu.com/sug'#url 連接
response=request.Request(url,headers=headers,data=bytes(new_name,encoding='utf-8'))#進行封裝
text=request.urlopen(response).read().decode('utf-8')#爬取數據
content=json.loads(text)
print('翻譯結果:',content['data'][0])

在實現的時候,會發生超出邊界的問題。

結果

代碼二

from urllib import request,parse
import json
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/68.0.3440.75 Safari/537.36'}
content=input('請輸入你要翻譯的內容:')
dict={'kw':content}#需要翻譯的內容
new_name=parse.urlencode(dict)#進行轉碼
url='https://fanyi.baidu.com/sug'#url 連接
response=request.Request(url,headers=headers,data=bytes(new_name,encoding='utf-8'))#進行封裝
text=request.urlopen(response).read().decode('utf-8')#爬取數據
content=json.loads(text)
print('翻譯結果:',content['data'][:-1])

為了解決代碼一的超出邊界問題,我采取了直接用-1做索引,限定了最後的邊界。

結果


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved