欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬蟲+Tkinter制作一個(gè)翻譯軟件的示例

 更新時(shí)間:2021年02月20日 16:02:18   作者:酸菜魚編程  
這篇文章主要介紹了Python爬蟲+Tkinter制作一個(gè)翻譯軟件的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

今天咱們用Python爬蟲和Tkinter界面來做一個(gè)翻譯軟件。

一、運(yùn)行效果

軟件實(shí)現(xiàn)功能:當(dāng)我們輸入英文或中文時(shí),程序即可打印出來對(duì)應(yīng)的譯文,如圖:

二、實(shí)現(xiàn)方法

1. 爬蟲部分

實(shí)現(xiàn)一鍵翻譯最簡(jiǎn)單的方式就是爬蟲,我們只需將要翻譯的內(nèi)容傳入,然后將翻譯的結(jié)果爬取下來呈現(xiàn)給用戶即可。在本文中,我們選擇的網(wǎng)站是有道翻譯。

下圖這個(gè)界面,你在左邊輸入文字,那么瀏覽器會(huì)把你輸入的信息傳輸給服務(wù)器。再在右側(cè)返回對(duì)應(yīng)翻譯結(jié)果。這就是一個(gè)典型的Post操作。

由于之前我們的爬取都是采用的Get方式來獲取數(shù)據(jù)的,并沒有用過Post方式,所以這里簡(jiǎn)單給大家說一下怎么用python發(fā)送Post請(qǐng)求:

發(fā)送post請(qǐng)求分為表單類(x-www-form-urlencoded)和json(application/json)格式,data參數(shù)支持字典格式和字符串格式,建議使用字典格式,在使用json.dumps()方法把data轉(zhuǎn)換為合法的json格式字符串,或者將data參數(shù)賦值給post方法的json參數(shù),data以字符串格式傳輸需要注意的事項(xiàng):

  1. 必須是json格式字符串,必須用雙引號(hào),k-v之家必須有逗號(hào),布爾值必須是小寫的true/false
  2. 不能有中文,直接傳字符串不會(huì)自動(dòng)編碼

我們還是按F12打開開發(fā)者模式,發(fā)現(xiàn)傳入的數(shù)據(jù)并沒有在原網(wǎng)頁中出現(xiàn),所以判斷這是一個(gè)使用異步刷新的網(wǎng)站,所以該URL,應(yīng)該去XHR中尋找,在XHR中發(fā)現(xiàn)了我們傳入的數(shù)據(jù),如圖:

一切準(zhǔn)備就緒了,可以開始書寫代碼了,爬蟲部分代碼如下:

url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
#使用post需要一個(gè)鏈接
data={'i': word,
  'from': 'AUTO',
  'to': 'AUTO',
  'smartresult': 'dict',
  'client': 'fanyideskweb',
  'doctype': 'json',
  'version': '2.1',
  'keyfrom': 'fanyi.web',
  'action': 'FY_BY_REALTIME',
  'typoResult': 'false'}
#將需要post的內(nèi)容,以字典的形式記錄在data內(nèi)。
r = requests.post(url, data)
#post需要輸入兩個(gè)參數(shù),一個(gè)是剛才的鏈接,一個(gè)是data,返回的是一個(gè)Response對(duì)象
answer=json.loads(r.text)
#你可以自己嘗試print一下r.text的內(nèi)容,然后再閱讀下面的代碼。
result = answer['translateResult'][0][0]['tgt']
return result

2.Tkinter部分

Tkinter是Python的標(biāo)準(zhǔn)GUI庫。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應(yīng)用程序。

由于 Tkinter 是內(nèi)置到 python 的安裝包中、只要安裝好 Python 之后就能 import Tkinter 庫、而且 IDLE 也是用 Tkinter 編寫而成、對(duì)于簡(jiǎn)單的圖形界面 Tkinter 能應(yīng)付自如。

代碼如下:

self.window = Tk()
self.fanyi = YouDaoFanyi()
self.window.title(u'翻譯器')
#設(shè)置窗口大小和位置
self.window.geometry('310x370+500+300')
self.window.minsize(310,370)
self.window.maxsize(310,370)
#創(chuàng)建一個(gè)文本框
self.result_text1 = Text(self.window,background = 'azure')
self.result_text1.place(x = 10,y = 5,width = 285,height = 155)
self.result_text1.bind("<Key-Return>",self.submit1)
#創(chuàng)建一個(gè)按鈕
#為按鈕添加事件
self.submit_btn = Button(self.window,text=u'翻譯',command=self.submit)
self.submit_btn.place(x=205,y=165,width=35,height=25)
self.submit_btn2 = Button(self.window,text=u'清空',command = self.clean)
self.submit_btn2.place(x=250,y=165,width=35,height=25)
#翻譯結(jié)果標(biāo)題
self.title_label = Label(self.window,text=u'翻譯結(jié)果:')
self.title_label.place(x=10,y=165)
#翻譯結(jié)果
self.result_text = Text(self.window,background = 'light cyan')
self.result_text.place(x = 10,y = 190,width = 285,height = 165)

來看看效果圖:

雖然有一些單調(diào),但是能做到這樣還是很不錯(cuò)的。

三、打包

做好程序后,可以將其打包,這樣以后不管電腦上有沒有python環(huán)境,我們都可以使用這個(gè)軟件來進(jìn)行翻譯,下面來教大家一個(gè)簡(jiǎn)單的python打包方法。

首先安裝PyInstaller第三方庫。

pip install Pylnstaller

然后使用cmd,切換到需要打包的python程序的存儲(chǔ)目錄,然后輸入該語句即可完成打包。

pyinstaller -F -w xxx.py

以上就是本文的全部?jī)?nèi)容了,希望能夠?qū)Υ蠹业膶W(xué)習(xí)起到一定的幫助作用!

四、代碼獲取

https://github.com/bigtigeryo/yingyihan

以上就是Python爬蟲+Tkinter制作一個(gè)翻譯軟件的示例的詳細(xì)內(nèi)容,更多關(guān)于python 制作翻譯軟件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作示例

    Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作示例

    這篇文章主要介紹了Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作,涉及Python列表list遍歷、查詢及時(shí)間消耗計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • 解決python 虛擬環(huán)境刪除包無法加載的問題

    解決python 虛擬環(huán)境刪除包無法加載的問題

    這篇文章主要介紹了解決python 虛擬環(huán)境刪除包無法加載的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python使用matplotlib定制繪圖的線型、標(biāo)記類型

    python使用matplotlib定制繪圖的線型、標(biāo)記類型

    這篇文章主要給大家詳細(xì)介紹了python使用matplotlib定制繪圖的線型、標(biāo)記類型,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 一文詳解如何實(shí)現(xiàn)PyTorch模型編譯

    一文詳解如何實(shí)現(xiàn)PyTorch模型編譯

    這篇文章主要為大家介紹了如何實(shí)現(xiàn)PyTorch?模型編譯詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • python閉包、深淺拷貝、垃圾回收、with語句知識(shí)點(diǎn)匯總

    python閉包、深淺拷貝、垃圾回收、with語句知識(shí)點(diǎn)匯總

    在本篇文章里小編給大家整理了關(guān)于python閉包、深淺拷貝、垃圾回收、with語句知識(shí)點(diǎn)匯總,有興趣的朋友們學(xué)習(xí)下。
    2020-03-03
  • python如何遍歷指定路徑下所有文件(按按照時(shí)間區(qū)間檢索)

    python如何遍歷指定路徑下所有文件(按按照時(shí)間區(qū)間檢索)

    這篇文章主要給大家介紹了關(guān)于python如何遍歷指定路徑下所有文件(按按照時(shí)間區(qū)間檢索)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python快速查找算法應(yīng)用實(shí)例

    python快速查找算法應(yīng)用實(shí)例

    這篇文章主要介紹了python快速查找算法,是一個(gè)比較經(jīng)典的算法應(yīng)用,有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • Python線性分類介紹

    Python線性分類介紹

    這篇文章主要介紹了Python線性分類,線性分類指在機(jī)器學(xué)習(xí)領(lǐng)域,分類的目標(biāo)是指將具有相似特征的對(duì)象聚集。而一個(gè)線性分類器則透過特征的線性組合來做出分類決定,以達(dá)到此種目的。對(duì)象的特征通常被描述為特征值,而在向量中則描述為特征向量,需要的朋友可以參考下
    2022-02-02
  • python實(shí)現(xiàn)兩個(gè)dict合并與計(jì)算操作示例

    python實(shí)現(xiàn)兩個(gè)dict合并與計(jì)算操作示例

    這篇文章主要介紹了python實(shí)現(xiàn)兩個(gè)dict合并與計(jì)算操作,結(jié)合具體實(shí)例形式分析了Python使用collections.Counter進(jìn)行字典dict合并與遍歷輸出相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • Pycharm中SQL語句提示SQL Dialect is Not Configured的解決

    Pycharm中SQL語句提示SQL Dialect is Not Config

    這篇文章主要介紹了Pycharm中SQL語句提示SQL Dialect is Not Configured的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-07-07

最新評(píng)論