Python培训
400-996-5531
在我们学习的时候,在我们查找文档的时候,很多内容都是英文的,如果你的英文不好,就很难去阅读这篇文章,语言不通是我们学习的最大的绊脚石,虽然谷歌浏览器有翻译的功能,翻译出来的效果也是挺不错,但是这样子阅读文章并不能对我们的工作学习起到帮助,反倒是机械化的翻译有可能会是你的中文水平下降,阅读一篇外国文章,最重要的就是对每个单词的理解,如果单词的意思都不懂,更不要想去理解文章的意思了。
因此这里做了一个划词翻译的小软件,鼠标选中文本就可以翻译出来。
例如,在阅读qt帮助的时候,碰到生词:
这里用到的知识点挺多的,有获取鼠标事件,接着调用键盘事件,然后调用爬虫去爬取百度翻译的结果,接着用tkinter显示出来。
获取鼠标事件,这里用到的是pyhook,用来判断鼠标点击事件,pyhook的安装比较复杂,普通的pip并不能够安装,需要去网站下载pyhook的whl
网站地址在此:
#/~gohlke/pythonlibs/
下载好包后,在命令行窗口输入pip install 包的地址+包名。
使用pyhook的一般方法如下:
def main(): # 创建管理器 hm = pyWinhook.HookManager() # 监听键盘 hm.KeyDown = onKeyboardEvent hm.HookKeyboard() # 监听鼠标 hm.MouseAll = onMouseEvent hm.HookMouse() # 循环监听 pythoncom.PumpMessages()
其中有两个函数就是用来处理获得的事件的方法,需要定义相应的函数
例如键盘监听:
def onKeyboardEvent(event): #print(event.Key) # 返回按下的键 if event.Key == 'Q': event = quit() return True
这个函数的意思是,如果接收到键盘按下Q,那么结束循环监听,程序结束
获得鼠标事件的函数:
def onMouseEvent(event): if (event.MessageName != "mouse move"): # 因为鼠标一动就会有很多mouse move,所以把这个过滤下 if event.MessageName == 'mouse left up': pyautogui.hotkey('ctrl','c') #如果鼠标点击则按下ctrl+c s = pyperclip.paste() global key global v try: key,v =getword(s) #调用爬虫获得翻译的结果 except: key = 'null' v = 'null' return True # 为True才会正常调用,如果为False的话,此次事件被拦截
上面的鼠标函数中有一个pyautogui库里的热键函数,关于pyautogui可以到这里查看python---很多行代码做一个自动打开软件的程序。
这里实现的是获得鼠标选取的内容,紧接着传递给爬虫,然后将翻译的结果返回到key和v,之中。
关于爬取百度翻译的,主要是利用post方法获得翻译的json数据,在对json数据解析,提取翻译的结果。
def request_translate(self): """ 向百度请求 json 数据 : return: 向百度请求的 json 数据 """ data = self.get_post_data() try: response_0 = requests.request(method="post", url=self.url_0, headers=self.headers, data=data).json() except Exception: # 进行数据请求的任何异常处理 response_0 = '' try:response_1 = requests.request(method="post", url=self.url_1, headers=self.headers, data=data).json() except Exception: # 进行数据请求的任何异常处理 response_1 = '' return response_0, response_1
在最后翻译结果获取到了,在利用pytkinter可视化一下,在将其打包,这样就是一个划词翻译软件了。
就这样,在日常的使用中也是非常便利的,只需要用鼠标选取一下,它就显示出单词的翻译结果。
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved