Python实现单词翻译功能


Posted in Python onJune 06, 2017

      在进行英文文献阅读时,经常会出现一些不认识的单词,但对于一些pdf阅读器,比如Foxit阅读器使用翻译功能需要点击(Extra->Translate),并且启用了翻译功能将不能使用注释功能,这对于阅读者来说将是极不方便的。所以为了方便查询单词,自己开发了个Windows环境下的Python程序用于监控并查询单词,而只需的操作就是选中单词并按Ctrl+C即可。

该Python程序主要分为三部分:从另外一个应用程序中获取需要查询的单词,单词翻译和单词显示。

从另外一个应用程序中获取需要查询的单词涉及到进程间通信,在Windows上最简单的方法是使用Clipboard功能。Python中有多种方式可以使用剪切板,比如使用win32clipboard(Python使用剪切板的方法)。这里使用的是Qt实现的clipboard,Qt的剪切板实现支持当系统剪切板内容发生改变时回调。具体实现:

# 获取Qt的剪切板并绑定回调函数
self.clipboard = QApplication.clipboard()
self.clipboard.dataChanged.connect(self.on_clipboard_changed)
# 回调函数
 def on_clipboard_changed(self):
 data = self.clipboard.mimeData()
 if data.hasText():
  word = data.text().strip()
  m = re.match(r'[a-zA-Z]+', word)
  if m:
  self.setWord(word)
  #self.setWindowFlags(self.windowFlags() & QtCore.Qt.WindowStaysOnTopHint)
  #self.setWindowState(self.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
  trans = queryWords(word)
  self.setTrans(trans)
  
  ''' tip the window content has changed, but cannot move the window to the forground'''
  self.activateWindow()
  
  else:
  print(word)

单词翻译直接调用有道单词翻译,单词翻译的链接格式为http://dict.youdao.com/w/{}/,其中{}为需要查询的单词。获取的将是单个网页,使用BeautifulSoup提取最终的翻译结果。

def queryWords(word):
 ''' 利用有道翻译查询单词 '''
 url = 'http://dict.youdao.com/w/{}/'.format(word)
 html = getURL(url)
 soup = BeautifulSoup(html.text, 'html.parser')
 trans_container = soup.find(class_='trans-container')
 
 if not trans_container:
 ''' not found the translation '''
 return [word]
 
 trans_li = trans_container.find_all('li')
 trans_data = [li.text.strip() for li in trans_li]
 return trans_data

最后显示是通过Qt编写的界面,原本是想查询到单词后,界面窗口自动激活并移动到最前端,但Windows不允许未经用户操作而将窗口移动到最前端,所以最后只是通过激活窗口提示用户。

Python实现单词翻译功能

完整的代码位于https://github.com/llf2017/pyDict/blob/master/pyDict.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python XML RPC服务器端和客户端实例
Nov 22 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
Dec 10 Python
python pytest进阶之conftest.py详解
Jun 27 Python
python常用函数与用法示例
Jul 02 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
Python实现FLV视频拼接功能
Jan 21 Python
Django后端按照日期查询的方法教程
Feb 28 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 #Python
python实现的正则表达式功能入门教程【经典】
Jun 05 #Python
Python中easy_install 和 pip 的安装及使用
Jun 05 #Python
详解Python pygame安装过程笔记
Jun 05 #Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 #Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 #Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 #Python
You might like
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
PHP中文编码小技巧
2014/12/25 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python批量查询域名是否被注册过
2017/06/21 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
Python进度条的制作代码实例
2019/08/31 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
Solaris操作系统的线程机制
2012/12/23 面试题
国培计划培训感言
2014/03/11 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
爱耳日活动总结
2014/04/30 职场文书
个人求职自荐信范文
2014/06/20 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
2014年团支部工作总结
2014/11/17 职场文书
幼儿园个人师德总结
2015/02/06 职场文书