成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python做一個簡單的翻譯工具

開發 后端
有時候,當我在命令行環境下寫代碼的時候,懶得再切換到瀏覽器里等待頁面的加載。于是我就想,能否用萬能的 python 制作一個 命令行下的翻譯工具呢?來看看吧。

編程本身是跟年齡無關的一件事,不論你現在是十四五歲,還是四五十歲,如果你熱愛它,并且愿意持續投入其中,必定會有所收獲。

本文就來自編程教室一位“小”讀者的投稿(互助學習1群里的同學應該對作者的名字很熟悉吧)。我看著他不停地產出新的代碼和技術文章,不禁感嘆“后生可畏”。

這是一個爬蟲基礎分析和操作的開發案例,在此分享給大家。

當我在電腦上需要翻譯一個單詞時,我會這樣做:

打開瀏覽器 = > 打開百度翻譯 = > 輸入單詞 = > 得到翻譯

不過有時候,當我在命令行環境下寫代碼的時候,懶得再切換到瀏覽器里等待頁面的加載。

于是我就想,能否用萬能的 python 制作一個 命令行下的翻譯工具 呢?

說干就干!

網上搜索了點信息,加上一頓操作,最終被我搗鼓出來了。來看下最終的效果:

在這個工具中,我用了 百度 、 有道 以及 谷歌 (可選)的翻譯。

開發思路

其中獲取有道翻譯和百度翻譯的原理都差不多,這里我們選取百度翻譯來玩耍一下啦:

首先打開百度翻譯:http://fanyi.baidu.com

接下來右鍵點擊 檢查 ,選擇 Network 中的 XHR (向服務器發送的數據請求)。然后我們在輸入框里輸入 save 這個單詞,我們可以看到一時間這里面多了幾個 sug 標簽,點開一看:

可以看到,這個 sug 請求里面就有我們想要的數據。點進去, Request URL 就是我們需要請求的網址,另外在 Request Method 看到是 POST 方式,也就是提交表單:

移到最后,我們看見了提交的表單參數:

在 Form Data 中,我們看見表單是一個字典: {'kw': 'save'} ,這里 save 是我們自己輸入的,也就是我們要查詢的單詞,因此我們使用 requests.post 來模擬這個請求: 

  1.  # 網址和表單  
  2. url'https://fanyi.baidu.com/sug'  
  3. Form_data = {'kw': word}  
  4. # post方式請求網站  
  5. response = requests.post(url, data = Form_data,headersheaders=headers)  

我們可以試著打印出返回的東西,你會發現是以 JSON 格式返回的,因此需要引入內置庫 json 來解析: 

  1. content = json.loads(response.text)   # 加載成字典形式 

在打印出的 json 格式的文本中我們發現翻譯結果在 'data'['v']( 剛剛的圖片里我們也看見了),接下來提取并返回: 

  1. result = content['data'][0]['v']   # 獲取翻譯結果  
  2. return result  

這樣就完成了提交表單了,實現百度翻譯了。

這里用到的就是一些常用的爬蟲分析和操作,有道翻譯也基本類似,不再贅述,具體操作可參加文末給出的完整代碼。

接下來我們來看看與眾不同的谷歌翻譯,這個玩意實在有些復雜。谷歌翻譯是有 api 的,但是要錢……我不想付錢……網上有大佬給出了解決方案(這里我們簡單地看一下原理):

按照近似百度翻譯的方式操作,我們看到這里多出了一個請求,這里面有我們想要的翻譯結果:

我們回到之前的 Request URL 看一下,發現前面的直接復制就好了, q 是我們需要翻譯的詞,但是這個 tk 參數卻是個棘手的參數。我代碼里用到的解法是網上的,仿照谷歌翻譯頁面上的提供的函數,用 JavaScript 去計算出了這個參數(我懷疑他就是拿的前端源碼,沒仔細對照)。

那么如何在 python 中執行 JavaScript 代碼呢,我們可以通過 pyexecjs 這個庫(注意這個庫導入名是 execjs )。這個部分的源碼就在 Py4Js 這個類里邊了。

特別說明下,因為無法直接使用谷歌翻譯,所以我把它做成了可選項,默認不會調用。

使用方法

我已經將這個項目發布到了 pypi ,你可以通過 pip 命令按如下方式安裝: 

  1. pip install quicktranslate 

用起來也是非常的簡單(加上 -g 可增加谷歌翻譯結果): 

  1. trans -t 你要翻譯的東西 

示例: 

  1. $ trans -t 你好  
  2. =========================  
  3. youdao translate result:hello  
  4. baidu translate result:[nǐ hǎo] how do you do; how are you; hello;  
  5. =========================  
  6. $ trans -t 你好 -g  
  7. =========================  
  8. youdao translate result:hello  
  9. baidu translate result:[nǐ hǎo] how do you do; how are you; hello;  
  10. google translate result:Hello there  
  11. =========================  

本案例完整代碼: https://github.com/pynickle/a... pip安裝命令: pip install quicktranslate 

 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2022-03-30 15:11:26

Python房價工具

2023-05-27 21:13:34

FlaskURL裝飾器

2021-12-01 07:02:55

Python 記錄器按鍵

2011-02-28 09:22:47

SQLite記賬簿

2017-06-08 15:53:38

PythonWeb框架

2020-11-04 07:56:19

工具Linux 翻譯

2019-09-23 09:11:02

Python文本編輯器操作系統

2015-07-03 11:27:30

程序員自己神器

2013-04-18 09:33:57

Windows PhoWindows Pho

2024-06-10 23:07:05

2019-12-24 11:03:17

Python數組圣誕節

2021-07-07 11:08:21

機器學習數據集PHP

2009-07-07 11:38:54

jsp oracle

2011-06-17 16:49:05

Cocoa蘋果

2021-12-23 09:50:46

Python游戲腳本

2020-06-04 12:55:44

PyTorch分類器神經網絡

2024-05-06 08:34:17

GolangGo程序

2018-01-04 16:04:35

圓環放大動畫

2021-12-30 06:59:27

視頻通話網頁

2017-06-30 15:18:24

對賬系統互聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品av在线 | 久久亚| 日韩在线免费视频 | 国产电影一区二区 | 国产精品久久在线 | 亚洲精品在线免费观看视频 | 国产一区二区三区免费 | 国产精品视频观看 | 日韩高清成人 | 中文字幕精品一区二区三区在线 | 91视频亚洲 | 午夜在线影院 | 国产在线观看不卡一区二区三区 | 午夜精品视频在线观看 | 久久久久久美女 | 国产中文字幕av | 综合久久av| 欧美专区在线观看 | 午夜欧美一区二区三区在线播放 | 亚洲国产伊人 | 国产精品久久久久久久久免费桃花 | 日韩免费高清视频 | 亚洲精品久久久久久国产精华液 | 免费高潮视频95在线观看网站 | 久久综合av | 亚洲人成人一区二区在线观看 | jizz亚洲人| 久久不卡 | 精品国产乱码 | 日韩在线观看一区二区三区 | 国产 日韩 欧美 制服 另类 | 欧美成年人视频在线观看 | 老外黄色一级片 | 毛片一区二区三区 | 91精品国产91久久久久久最新 | 性一交一乱一透一a级 | 欧美日韩电影在线 | 午夜影院污 | 日韩小视频 | 欧美日韩亚洲一区 | 中文字幕亚洲在线 |