python httplib_如何用Python做个英语翻译小字典

大家好,今天我们来制作一款有图形界面的翻译小软件,下面我们开始吧

|Tkinter模块介绍

tkinter模块是一款让我们有图形界面的库,是大部分初学者要学习的。

|urllib包

urllib包里一共有4个模块,第一个模块是最复杂也是最重要的,它包含了对服务器请求的发出、跳转、代理和安全等各方面。

通过urllib.request.urlopen()就可以了

但是我们发现,python爬取的是以utf-8编码的bytes对象,要对其进行解码,将他变成unicode:

92cae89992b8f3ba7c759accf1e53545.png

|实战:翻译

在实战之前,以下3个函数你还会用到:

·geturl()——返回请求的url

·info()——返回一个httplib,HTTPMessage对象

·getcode()——fanhuiHTTP状态码

下面开始了:

我们要用到有道词典来翻译文本

首先来到翻译官网(http://fanyi.youdao.com)出现这个画面:

067f33d7933a7322009583e2cf59c186.png

要使用浏览器的“检查元素”功能,切换到Network窗口,找到translate_o?这项,requestmethod应是POST:

f94f1ecf6e3865321a773602afd638ad.png

找到上图所示的headers,里面有各种信息

这是我们就可以开始写代码了:

import jsonfrom tkinter import *import requestsimport base64#翻译函数,el是要翻译的,res是翻译结果def translate(el,res):    content = el.get().strip()   #得到要翻译的内容    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionForm=http://www.youdao.com/"   #传输参数    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字典发送给有道服务器    response = requests.post(url,data=key)    if response.status_code == 200:        response = response.text        #通过json.loads加载成json格式        result = json.loads(response)       #结果返回到文本框        res.set(result['translateResult'][0][0]['tgt'])       #判断是否发送成功'''    target = json.loads(html)    print("翻译结果:%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)#设置焦点    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)    #消息循环    mainloop()def main():    tk()if __name__ == '__main__':    main()

|运行结果

3be26649a832f22c8f94e8d8723cafa0.png

结果

|转换成exe

转换exe有很多工具,这里用的pyinstaller

cmd里使用pip:

pip install pyinstaller

如果觉得慢可以使用其他网站资源

然后输入

pyinstaller -F -w 文件位置:\fanyi.py

就可以了

生成的exe:

d1c3faaa4705fc34f727fdc3474b959f.png

|总结

主要讲了python的爬虫,tkinter模块。如果你觉得有意思,赶紧点再看分享给身边的小伙伴吧!(本文原创不易)

c0958e205d1b43e5c69bec088ab1b5ac.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值