日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

用html5做一个简单网页_用Python做一个简单的翻译工具

發(fā)布時(shí)間:2024/9/19 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用html5做一个简单网页_用Python做一个简单的翻译工具 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編程本身是跟年齡無關(guān)的一件事,不論你現(xiàn)在是十四五歲,還是四五十歲,如果你熱愛它,并且愿意持續(xù)投入其中,必定會(huì)有所收獲。
本文就來自編程教室一位“小”讀者的投稿(互助學(xué)習(xí)1群里的同學(xué)應(yīng)該對(duì)作者的名字很熟悉吧)。我看著他不停地產(chǎn)出新的代碼和技術(shù)文章,不禁感嘆“后生可畏”。
這是一個(gè)爬蟲基礎(chǔ)分析和操作的開發(fā)案例,在此分享給大家。

當(dāng)我在電腦上需要翻譯一個(gè)單詞時(shí),我會(huì)這樣做:

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

不過有時(shí)候,當(dāng)我在命令行環(huán)境下寫代碼的時(shí)候,懶得再切換到瀏覽器里等待頁面的加載。

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

說干就干!

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

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

開發(fā)思路

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

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

接下來右鍵點(diǎn)擊檢查,選擇 Network 中的 XHR (向服務(wù)器發(fā)送的數(shù)據(jù)請(qǐng)求)。然后我們?cè)谳斎肟蚶镙斎?save 這個(gè)單詞,我們可以看到一時(shí)間這里面多了幾個(gè) sug 標(biāo)簽,點(diǎn)開一看:

可以看到,這個(gè) sug 請(qǐng)求里面就有我們想要的數(shù)據(jù)。點(diǎn)進(jìn)去,Request URL 就是我們需要請(qǐng)求的網(wǎng)址,另外在 Request Method 看到是 POST 方式,也就是提交表單:

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

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

# 網(wǎng)址和表單

我們可以試著打印出返回的東西,你會(huì)發(fā)現(xiàn)是以 JSON 格式返回的,因此需要引入內(nèi)置庫 json 來解析:

content

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

result

這樣就完成了提交表單了,實(shí)現(xiàn)百度翻譯了。

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

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

按照近似百度翻譯的方式操作,我們看到這里多出了一個(gè)請(qǐng)求,這里面有我們想要的翻譯結(jié)果:

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

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

特別說明下,因?yàn)闊o法直接使用谷歌翻譯,所以我把它做成了可選項(xiàng),默認(rèn)不會(huì)調(diào)用。

使用方法

我已經(jīng)將這個(gè)項(xiàng)目發(fā)布到了 pypi,你可以通過 pip 命令按如下方式安裝:

pip install quicktranslate

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

trans -t 你要翻譯的東西

示例:

你好

獲取本案例完整代碼,請(qǐng)?jiān)诠娞?hào)“Crossin的編程教室”中回復(fù)關(guān)鍵字:翻譯

作者:pynickle

------

一起學(xué),走得遠(yuǎn)!

歡迎搜索:Crossin的編程教室

總結(jié)

以上是生活随笔為你收集整理的用html5做一个简单网页_用Python做一个简单的翻译工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。