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

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


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


这里唯一有所不同的是就是我这次插入的数据库选择的是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的模糊查询方法,通过%匹配符匹配数据库中所有符合的词义,并给出相关结果;而如果是单词,则可以直接查询。

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



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

作者:HDMI

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

∞∞∞∞∞

公众号回复“IT派”,

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

Python利用tkinter制作桌面翻译小工具相关推荐

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

    最近突然想到是不是可以拿来做个桌面小工具,于是花了一个下午加一晚上,折腾了一下. 运行平台:Windows Python版本:Python3.6 IDE:Sublime Text 其他:Chrome浏 ...

  2. python英语翻译-python制作英语翻译小工具

    用python爬虫可以制作英语翻译小工具.来看下代码吧- import requests,json #函数封装 def translator(): session=requests.session() ...

  3. python英语翻译-python制作英语翻译小工具代码实例

    这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫可以制作英语翻译小工具.来 ...

  4. 利用YQL制作自己的小工具

    YQL服务可以实现对网上不同数据源的query,filter,combine(查询,过滤,合并). YQL说明类似SQL.下面的例子就是用YQL说明实现从Flickr上得到一系列text为cat的图片 ...

  5. python使用pyqt5制作exe电脑小工具

    call_cxtool.py 用来调用界面的开始界面 # -*- coding: utf-8 -*-# Form implementation generated from reading ui fi ...

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

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

  7. python之PySide2制作打开浏览器小工具

    本文偏向基础,主要是熟悉PySide2界面开发,按钮如何调用函数功能: 最终实现点击按钮后,打开用户输入的网址功能: 首先按照下方地址文章,制作一个ui界面,并且将ui界面转换成py代码: pytho ...

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

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

  9. 使用pyqt5制作简单时钟小工具

    一.概述 本文我们将介绍如何使用python+pyqt5在制作桌面时钟小工具 二.引言 此篇文章是我在学习pyqt5中多线程相关的Qtimer时,随手制作的小工具,最终打包成exe可执行文件在桌面随时 ...

最新文章

  1. 异步IO(协程,消息循环队列)
  2. JQuery 中有用的方法
  3. 当年只会C# 所以写C++就成这样了! log4cplus - log4net
  4. 2016总结 wjwdive
  5. DevOps到底是什么鬼?DevOps介绍及工具推荐
  6. probability space 概率空间,Filtration,σ-algebras
  7. python time 时间戳_Python的time.time()返回本地或UTC时间戳吗?
  8. C#LeetCode刷题之#160-相交链表(Intersection of Two Linked Lists)
  9. EVC编程经验点滴(一)
  10. 史上最全排序算法总结 | 原力计划
  11. spring mvc原理_SpringBoot:认认真真梳理一遍自动装配原理
  12. C++和C#的性能比较
  13. 人物简介——奥古斯塔·德摩根
  14. 什么是企业邮箱,如何申请企业邮箱,企业邮箱一年多少钱?
  15. 字符串练习:手机号码屏蔽,身份证号码信息查看,游戏骂人敏感词替换
  16. java怎么画八卦图_自己画八卦图怎么画?电脑绘制八卦图|八卦图的简单画法
  17. 一个9年运维的经验之路
  18. Matlab 元胞数组和结构体
  19. Mac 打开终端的几个方法
  20. Java多线程之赛跑游戏(含生成exe文件)

热门文章

  1. 含碘稀土铕(Ⅲ)配合物荧光微球/稀土铕配合物掺杂功能化二氧化硅微球的制备方法
  2. android 设置空动画,Android WebView 空白等待时加载动画
  3. python安装盒怎么打开_python盒图
  4. 微信怎么传较大视频?微信怎么传特别大的视频?
  5. 什么都不会的宝妈,怎么做自媒体赚钱?
  6. 使用keytool工具产生带根CA和二级CA的用户证书
  7. 所发生的发生的发顺丰噶时代发生的发生地方
  8. 浙大计算机学院考纲,浙江大学考研大纲
  9. 聚名:阿里巴巴“双11”商标被驳回,商标申请驳回的原因是什么?
  10. 数云荣登乌镇互联网大会2016中国大数据创新企业50强