python httplib_如何用Python做个英语翻译小字典
大家好,今天我們來制作一款有圖形界面的翻譯小軟件,下面我們開始吧
|Tkinter模塊介紹
tkinter模塊是一款讓我們有圖形界面的庫,是大部分初學(xué)者要學(xué)習(xí)的。
|urllib包
urllib包里一共有4個模塊,第一個模塊是最復(fù)雜也是最重要的,它包含了對服務(wù)器請求的發(fā)出、跳轉(zhuǎn)、代理和安全等各方面。
通過urllib.request.urlopen()就可以了
但是我們發(fā)現(xiàn),python爬取的是以utf-8編碼的bytes對象,要對其進(jìn)行解碼,將他變成unicode:
|實(shí)戰(zhàn):翻譯
在實(shí)戰(zhàn)之前,以下3個函數(shù)你還會用到:
·geturl()——返回請求的url
·info()——返回一個httplib,HTTPMessage對象
·getcode()——fanhuiHTTP狀態(tài)碼
下面開始了:
我們要用到有道詞典來翻譯文本
首先來到翻譯官網(wǎng)(http://fanyi.youdao.com)出現(xiàn)這個畫面:
要使用瀏覽器的“檢查元素”功能,切換到Network窗口,找到translate_o?這項(xiàng),requestmethod應(yīng)是POST:
找到上圖所示的headers,里面有各種信息
這是我們就可以開始寫代碼了:
import jsonfrom tkinter import *import?requestsimport base64#翻譯函數(shù),el是要翻譯的,res是翻譯結(jié)果def translate(el,res): content = el.get().strip()???#得到要翻譯的內(nèi)容 url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionForm=http://www.youdao.com/"???#傳輸參數(shù) key = { 'from':'AUTO', 'to':'AUTO', 'i':content, "smartresult":"dict", "client":"fanyideskweb", "version":"2.1", "doctype":"json", "keyform":"fanyi.web", "ue":"UTF-8", "action":"FY_BY_REALTIME",????????}???????#key字典發(fā)送給有道服務(wù)器????response?=?requests.post(url,data=key) if response.status_code == 200: response = response.text????????#通過json.loads加載成json格式 result = json.loads(response)???????#結(jié)果返回到文本框 res.set(result['translateResult'][0][0]['tgt'])???????#判斷是否發(fā)送成功''' target = json.loads(html) print("翻譯結(jié)果:%s"%(target['translateResult'][0][0]['tgt']))'''?#用做測試def tk(): root=Tk()????root.title("賢談小棧翻譯軟件") root.geometry('450x200') Label(root,text='原文:').place(x=30,y=30) Label(root,text='譯文:').place(x=30,y=70)#設(shè)置焦點(diǎn) el=Entry(root) el.focus() el.place(x=80,y=30,width=250,height=30) ????res?=?StringVar() e2 = Entry(root,textvariable=res) e2.place(x=80,y=70,width=250,height=30) Button(root,text='翻譯',width=10,command=lambda:translate(el,res)).place(x=80,y=120) Button(root,text='退出',width=10,command=root.quit).place(x=240,y=120) #消息循環(huán) mainloop()def main(): tk()if __name__ == '__main__':????main()|運(yùn)行結(jié)果
結(jié)果
|轉(zhuǎn)換成exe
轉(zhuǎn)換exe有很多工具,這里用的pyinstaller
cmd里使用pip:
pip install pyinstaller如果覺得慢可以使用其他網(wǎng)站資源
然后輸入
pyinstaller?-F?-w 文件位置:\fanyi.py就可以了
生成的exe:
|總結(jié)
主要講了python的爬蟲,tkinter模塊。如果你覺得有意思,趕緊點(diǎn)再看分享給身邊的小伙伴吧!(本文原創(chuàng)不易)
總結(jié)
以上是生活随笔為你收集整理的python httplib_如何用Python做个英语翻译小字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 震惊!数码博主称将转行测飞机杯?看了眼日
- 下一篇: Nature|GPT-4 被吹爆,科学家