Python|利用tkinter制作桌面翻譯工具屡限,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

最近突然想到是不是可以拿來做個桌面小工具品嚣,于是花了一個下午加一晚上,折騰了一下钧大。

  • 運(yùn)行平臺:Windows
  • Python版本:Python3.6
  • IDE:Sublime Text
  • 其他:Chrome瀏覽器

簡述流程為:

步驟1:用Python實(shí)現(xiàn)爬蟲爬取http://www.kuakao.com/english/ch/39183.html這個網(wǎng)頁上的單詞并存入MySQL數(shù)據(jù)庫翰撑;

步驟2:再用另一個爬蟲爬取http://www.iciba.com/,實(shí)現(xiàn)通過單詞或詞義查詢單詞啊央;

步驟3:用Python tkinter實(shí)現(xiàn)程序窗口眶诈,使其具備在線翻譯和本地翻譯兩個功能涨醋;

步驟4:連接數(shù)據(jù)庫,實(shí)現(xiàn)根據(jù)單詞或詞義的本地查詢逝撬;

步驟5:將MySQL的連接所需參數(shù)寫入配置文件浴骂,實(shí)現(xiàn)配置文件的讀取。

首先我們使用Chrome瀏覽器看下我們要爬取考研單詞的網(wǎng)頁宪潮,和之前一樣簡單看下結(jié)構(gòu)溯警。

Python|利用tkinter制作桌面翻譯工具,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

結(jié)構(gòu)不是很復(fù)雜坎炼,所以我們和以前一樣使用請求網(wǎng)頁—解析網(wǎng)頁——存儲單詞的過程來就

Python|利用tkinter制作桌面翻譯工具愧膀,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

這里唯一有所不同的是就是我這次插入的數(shù)據(jù)庫選擇的是MySQL,所以會之前有一點(diǎn)不同。如下所示:

Python|利用tkinter制作桌面翻譯工具谣光,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

連接數(shù)據(jù)庫時(shí)我讀取了配置文件里的參數(shù)檩淋,所以沒有直接給出,下面再介紹相關(guān)配置與讀取配置萄金。在MySQL中蟀悦,連接好數(shù)據(jù)庫后,我們首先獲取一個游標(biāo)氧敢,然后寫上sql插入語句:

INSERT INTO 英文詞匯.詞匯 (序號, 單詞, 詞義) VALUES (%s, %s, %s)

當(dāng)然在插入之前日戈,需要創(chuàng)建一個數(shù)據(jù)庫和數(shù)據(jù)表,并設(shè)置好字段類型等孙乖。這個簡單的sql語句就是將爬取下來的單詞插入到英文詞匯數(shù)據(jù)庫中詞匯表中浙炼,然后在執(zhí)行sql語句即可,最后需要提交修改唯袄。

由于單詞不在一個網(wǎng)頁上弯屈,所以我們還需要一個循環(huán),構(gòu)建url恋拷,遍歷所有單詞頁面

Python|利用tkinter制作桌面翻譯工具资厉,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

來看下數(shù)據(jù)庫里的詞匯情況:

Python|利用tkinter制作桌面翻譯工具,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

接下來我們來看下配置文件及讀取部分蔬顾。

spider.conf

Python|利用tkinter制作桌面翻譯工具宴偿,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

這個配置文件里寫的是連接MySQL的一些參數(shù),包括主機(jī)名诀豁、端口窄刘、用戶、密碼等舷胜。

再來看下如何讀取娩践,讀取配置文件是通過Python自帶的configparser模塊。

Python|利用tkinter制作桌面翻譯工具,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

定義一個SpiderConfi類欺矫,然后定義相關(guān)變量纱新。再通過load_conf方法讀取配置文件,讀取方式很簡單,先建立一個ConfigParse對象穆趴,然后讀取配置文件的名稱脸爱,最后通過get方法讀取參數(shù)即可,這里需要注意的是端口port需要讀取成數(shù)字未妹,而不是字符串簿废,所以使用getint方法。最后我使用了日志模塊络它,用于確認(rèn)是否正確讀取族檬。

Python|利用tkinter制作桌面翻譯工具,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

最后調(diào)用方法化戳,看下執(zhí)行結(jié)果吧单料。

Python|利用tkinter制作桌面翻譯工具,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

第二步用來實(shí)現(xiàn)在線翻譯的功能的爬蟲即之前介紹過的爬取金山翻譯点楼,這里就不再多說了扫尖。直接來看如何實(shí)現(xiàn)桌面窗口吧。

這里我使用的Python自帶的tkinter模塊,簡單的做了個界面掠廓。

Python|利用tkinter制作桌面翻譯工具换怖,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

相關(guān)具體的方法參數(shù)大家可以參考官網(wǎng):tkinter,這里就不再多說啦。主要就是定義窗口標(biāo)簽控件以及布局蟀瞧。實(shí)現(xiàn)窗口是這樣的:

Python|利用tkinter制作桌面翻譯工具沉颂,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

兩個按鈕綁定不同的方法,分別是:

Python|利用tkinter制作桌面翻譯工具悦污,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

cmd1是在線翻譯铸屉,直接執(zhí)行了其中的一個方法獲取金山翻譯的釋義,cmd2是調(diào)用了接下來要講的WordRetriever類塞关,然后再執(zhí)行查詞的方法抬探,接著往下看吧子巾!

Python|利用tkinter制作桌面翻譯工具帆赢,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

check_word方法首先將result_text標(biāo)簽里的數(shù)據(jù)清空,然后再獲取輸入到text_entry里的單詞或詞義线梗,之后連接好數(shù)據(jù)庫椰于。

Python|利用tkinter制作桌面翻譯工具,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

連接好數(shù)據(jù)庫之后仪搔,就可以執(zhí)行sql查詢了瘾婿,我將輸入到text_entry里的數(shù)據(jù)分成兩種情況,當(dāng)正則表達(dá)式匹配到漢字時(shí),證明輸入的是詞義偏陪,需要查找的是單詞抢呆,這里我們就使用MySQL的模糊查詢方法,通過%匹配符匹配數(shù)據(jù)庫中所有符合的詞義笛谦,并給出相關(guān)結(jié)果抱虐;而如果是單詞,則可以直接查詢饥脑。

最后就來試試查詢結(jié)果吧:

Python|利用tkinter制作桌面翻譯工具恳邀,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙
Python|利用tkinter制作桌面翻譯工具,結(jié)構(gòu)不是很復(fù)雜不過有點(diǎn)糙

好了灶轰,就是這么多了寫得比較匆忙谣沸,有點(diǎn)糙,將就一下下

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笋颤,一起剝皮案震驚了整個濱河市乳附,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伴澄,老刑警劉巖许溅,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秉版,居然都是意外死亡贤重,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門清焕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來并蝗,“玉大人,你說我怎么就攤上這事秸妥」鐾#” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵粥惧,是天一觀的道長键畴。 經(jīng)常有香客問我,道長突雪,這世上最難降的妖魔是什么起惕? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮咏删,結(jié)果婚禮上惹想,老公的妹妹穿的比我還像新娘。我一直安慰自己督函,他們只是感情好嘀粱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布激挪。 她就那樣靜靜地躺著,像睡著了一般锋叨。 火紅的嫁衣襯著肌膚如雪垄分。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天娃磺,我揣著相機(jī)與錄音锋喜,去河邊找鬼。 笑死豌鸡,一個胖子當(dāng)著我的面吹牛嘿般,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涯冠,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼炉奴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蛇更?” 一聲冷哼從身側(cè)響起瞻赶,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎派任,沒想到半個月后砸逊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掌逛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年师逸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豆混。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡篓像,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出皿伺,到底是詐尸還是另有隱情员辩,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布鸵鸥,位于F島的核電站奠滑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妒穴。R本人自食惡果不足惜宋税,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宰翅。 院中可真熱鬧弃甥,春花似錦爽室、人聲如沸汁讼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘿架。三九已至瓶珊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耸彪,已是汗流浹背伞芹。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝉娜,地道東北人唱较。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像召川,于是被迫代替她去往敵國和親南缓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 今天看到一位朋友寫的mysql筆記總結(jié)荧呐,覺得寫的很詳細(xì)很用心汉形,這里轉(zhuǎn)載一下,供大家參考下倍阐,也希望大家能關(guān)注他原文地...
    信仰與初衷閱讀 4,725評論 0 30
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時(shí)概疆,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,249評論 0 9
  • MYSQL 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 7,787評論 5 116
  • 匆匆又匆匆 怨 往事太濃 回憶太重 憑空 再無相逢
    是你啊_閱讀 131評論 0 0
  • ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
    七景鳴閱讀 193評論 0 0