Python利用tkinter制作桌面翻译小工具

640?wx_fmt=png


很早之前写过一个金山翻译的爬取小程序,最近突然想到是不是可以拿来做个桌面小工具,于是花了一个下午加一晚上,折腾了一下。

运行平台:Windows

Python版本:Python3.6

IDE:Sublime Text

其他:Chrome浏览器

简述流程为:

步骤1:用Python实现爬虫爬取http://www.kuakao.com/english/ch/39183.html这个网页上的单词并存入MySQL数据库;

步骤2:再用另一个爬虫爬取http://www.iciba.com/,实现通过单词或词义查询单词;

步骤3:用Python tkinter实现程序窗口,使其具备在线翻译和本地翻译两个功能;

步骤4:连接数据库,实现根据单词或词义的本地查询;

步骤5:将MySQL的连接所需参数写入配置文件,实现配置文件的读取。

首先我们使用Chrome浏览器看下我们要爬取考研单词的网页,和之前一样简单看下结构。

640?wx_fmt=jpeg

结构不是很复杂,所以我们和以前一样使用请求网页—解析网页——存储单词的过程来就行。

640?wx_fmt=jpeg

这里唯一有所不同的是就是我这次插入的数据库选择的是MySQL,所以会之前有一点不同。如下所示:

640?wx_fmt=jpeg

连接数据库时我读取了配置文件里的参数,所以没有直接给出,下面再介绍相关配置与读取配置。在MySQL中,连接好数据库后,我们首先获取一个游标,然后写上sql插入语句:

INSERT INTO 英文词汇.词汇 (序号, 单词, 词义) VALUES (%s, %s, %s)

当然在插入之前,需要创建一个数据库和数据表,并设置好字段类型等。这个简单的sql语句就是将爬取下来的单词插入到英文词汇数据库中词汇表中,然后在执行sql语句即可,最后需要提交修改。

由于单词不在一个网页上,所以我们还需要一个循环,构建url,遍历所有单词页面。

640?wx_fmt=jpeg

来看下数据库里的词汇情况:

640?wx_fmt=jpeg

接下来我们来看下配置文件及读取部分。

spider.conf

640?wx_fmt=jpeg

这个配置文件里写的是连接MySQL的一些参数,包括主机名、端口、用户、密码等。

再来看下如何读取,读取配置文件是通过Python自带的configparser模块。

640?wx_fmt=jpeg

定义一个SpiderConfi类,然后定义相关变量。再通过load_conf方法读取配置文件,读取方式很简单,先建立一个ConfigParse对象,然后读取配置文件的名称,最后通过get方法读取参数即可,这里需要注意的是端口port需要读取成数字,而不是字符串,所以使用getint方法。最后我使用了日志模块,用于确认是否正确读取。

640?wx_fmt=jpeg

最后调用方法,看下执行结果吧。

640?wx_fmt=jpeg

第二步用来实现在线翻译的功能的爬虫即之前介绍过的爬取金山翻译,这里就不再多说了。直接来看如何实现桌面窗口吧。

这里我使用的Python自带的tkinter模块,简单的做了个界面。

640?wx_fmt=jpeg

相关具体的方法参数大家可以参考官网:tkinter,这里就不再多说啦。主要就是定义窗口标签控件以及布局。实现窗口是这样的:

640?wx_fmt=jpeg

两个按钮绑定不同的方法,分别是:

640?wx_fmt=jpeg

cmd1是在线翻译,直接执行了其中的一个方法获取金山翻译的释义,cmd2是调用了接下来要讲的WordRetriever类,然后再执行查词的方法,接着往下看吧!

640?wx_fmt=jpeg

check_word方法首先将result_text标签里的数据清空,然后再获取输入到text_entry里的单词或词义,之后连接好数据库。

640?wx_fmt=jpeg

连接好数据库之后,就可以执行sql查询了,我将输入到text_entry里的数据分成两种情况,当正则表达式匹配到汉字时,证明输入的是词义,需要查找的是单词,这里我们就使用MySQL的模糊查询方法,通过%匹配符匹配数据库中所有符合的词义,并给出相关结果;而如果是单词,则可以直接查询。

最后就来试试查询结果吧:

640?wx_fmt=jpeg
640?wx_fmt=jpeg

好了,就是这么多了~写得比较匆忙,有点糙,将就一下下~

作者:HDMI    

知乎:https://www.zhihu.com/people/hdmi-blog/posts

∞∞∞

640?wx_fmt=png

公众号回复“IT派”

邀你加入 IT派 { 深广创投圈 } 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个VB6的IDE插件(Addin),使用VB6的IDE直接设计Python的界面。 Python和VB都是能让人快乐的编程语言,我使用了Python之后,很多自己使用的工具都使用Python开发或改写了,因为最终实现的Python代码实在太短了(相比VB),有时候Python一行代码就可以实现VB一个函数的功能。 Python就是这种让人越用越开心的语言。 不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter使用起来非常简,不过对于习惯了VB拖放控件完成界面设计的偶来说,还是不够人性化。TK也有一个工具叫GUI Builder,不过它使用Layout布局,不够直观,而且用起来很不爽。。 至于PyQt/wxPython等GUI库,尽管有可视化设计工具,但总感觉做一般的轻量级应用是杀鸡用牛刀, 而且不够环保,不够低碳,要带一个很大的库,需要目标机器上夜同样安装了PyQt/wxPython,做不了绿色软件。 所以最终的结果是我更喜欢Tkinter,用起来很简,绿色环保,真正的跨平台,一个py文件到处运行(担心泄密就编译成pyc)。 很多人都认为TK的界面不够美观,不过我经过多次实验后发现导入Python自带的标准TTK主题库,界面非常Native,不输PyQt/wxPython。 此Addin默认启用TTK支持,也可选择关闭。 总而言之,轻量级GUI,TK+TTK足够。 使用此Addin,你可以不用写一句代码就可以生成一个完整可运行的Python的GUI界面,支持2.X和3.X。 安装方法:将压缩包解压到你希望的目录,然后执行Setup.exe完成注册插件过程,打开VB6就可以用了。 在VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至剪贴板或保存至文件。 一般情况下你可以不用再改变tkinter的控件属性,但是如果你熟悉tkinter,需要更多的控制,可以一一核对各属性,并且修改,再生成代码。 当然除了用来设计界面外,此ADDIN内置的各控件属性列表可以做为编程参考,比较完整,除了极少数我认为大多数人都不用的属性外,属性定义基本上是我从官方的tkinter文档直接翻译的。 如果还没有VB6,网上找一个VB6精简版即可,不到20M,小巧玲珑。 代码已经在Github上托管,更新的版本可以在这上面找到,需求也可以在上面提: https://github.com/cdhigh/Visual-Tkinter-for-Python
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值