最近突然想到是不是可以拿来做个桌面小工具,于是花了一个下午加一晚上,折腾了一下。

  • 运行平台: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浏览器看下我们要爬取考研单词的网页,和之前一样简单看下结构。

更多Python视频、源码、资料加群683380553免费获取

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

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

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

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

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

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

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

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

spider.conf

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

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

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

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

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

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

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

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

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

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

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

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

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

Python|利用tkinter制作桌面翻译工具,结构不是很复杂不过有点糙相关推荐

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

    很早之前写过一个金山翻译的爬取小程序,最近突然想到是不是可以拿来做个桌面小工具,于是花了一个下午加一晚上,折腾了一下. 运行平台:Windows Python版本:Python3.6 IDE:Subl ...

  2. python利用tkinter制作查询热映电影软件

    淘票票电影热榜网址: https://dianying.taobao.com/showList.htm?spm=a1z21.6646273.city.2.4ed46d6ekOc3wH&n_s= ...

  3. python利用tkinter制作GUI界面,爬取淘票票国庆中秋双节时下热映电影

    淘票票电影热榜网址: https://dianying.taobao.com/showList.htm?spm=a1z21.6646273.city.2.4ed46d6ekOc3wH&n_s= ...

  4. python利用thinker制作多页面切换的桌面应用实例教程

    本篇文章主要讲解,python利用thinker制作多页面的桌面实例教程.可以在一个主界面中相互进行切换和设置相关的表单信息,布局等方法 代码片段的实际效果 视频演示: python使用thinker ...

  5. python桌面翻译_Python实现桌面翻译工具【新手必学】

    Python 用了好长一段时间了,起初是基于对爬虫的兴趣而接触到的.随着不断的深入,慢慢的转了其它语言,毕竟工作机会真的太少了.很多技能长时间不去用,就会出现遗忘,也就有了整理一下,供初学者学习和讨论 ...

  6. python代码翻译-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!

    原标题:10 行代码,Python 教你自制屏幕翻译工具,有逼格!! 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译. 当然,对于 I ...

  7. python代码翻译器-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!

    原标题:10 行代码,Python 教你自制屏幕翻译工具,有逼格!! 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译. 当然,对于 I ...

  8. 利用Excel制作一个评级工具

    利用Excel制作一个评级工具 基本目标 思路 输入字符+计算 方法一 方法二 根据计算结果+输出字符 总结 基本目标 做一个简单快速的评级工具. 希望做到评价人在区域(1)中输入单项评价,区域(3) ...

  9. Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI

    现在NBA联赛也进行到半决赛了,我们怎么样才能以更快的方法获取NBA的数据呢?这里我们就自己来做一个数据播报的程序 文章目录 制作NBA数据爬虫 捋顺思路 编写代码 NBAReporter.py NB ...

最新文章

  1. 深入浅出,机器学习该怎么入门?
  2. 硅谷产品实战-总结:15、如何组织有效的会议?
  3. [C++11]通过using定义基础类型和函数指针别名
  4. 原生JS字符串操作方法汇总
  5. 杭电2100Lovekey
  6. LeetCode 674. 最长连续递增序列 (滑动窗口 计数法)
  7. vsftpd 配置-掉坑记
  8. mysql单表大小限制
  9. php铺满,div如何铺满剩余高度或宽度_html/css_WEB-ITnose
  10. C++实践之华氏温度转摄氏温度
  11. 普元mobile_普元Primeton Mobile 7.1 正式发布 互联网集成能力加速企业数字化转型
  12. 淘宝网上卖F22飞机,一群强人提问
  13. Golang sqlx 使用 Where in 解决办法
  14. 苹果ipad有哪几款_iPad 已经出品十年了,缅怀一下
  15. stm32 app 连上阿里云
  16. linux内核编译时bad register name `%dil'错误
  17. sklearn模型中random_state参数的意义
  18. 【一起入门MachineLearning】中科院机器学习-期末题库-【选择题13,14,15,16,17,26,27,65+多选题11,22+简答题2】
  19. 转载 Linux内存管理(最透彻的一篇)
  20. CAT3.0的集群部署

热门文章

  1. 把时间当作朋友——第1章 醒悟
  2. 从 RDO到 ADO 的移植
  3. RDO和VB数据库编程
  4. 计算机的击键方法教学教案,学习敲击L键计算机教案
  5. 中国自己的matlab,创建matlab中中国的holidays函数
  6. 水溶的球形金纳米颗粒浓度1mg/ml|纳米金粒径13nm|Ag@SiO2核壳纳米粒子内核15nm外核5nm
  7. traefik gateway api
  8. 2021年全球潜孔锤钻头收入大约1119.1百万美元,预计2028年达到1382.2百万美元
  9. 有所思而有所作(古诗体)
  10. 全国计算机二级抵免自考,自考计算机可以抵免吗?