文章目录

  • 简易翻译工具的制作
    • 需要配置
      • 快速下载:
      • 关于chromedriver(重要)
    • 代码区
      • 库的引入
      • 单词记录界面的构造
      • 单词翻译界面的构造
      • 主函数运行

简易翻译工具的制作

在阅读英语文章中遇到生词时,通常会诉诸于网络翻译,但若是想把单词记录下来,往往需要“手自笔录”与Excel,Word等地方,十分麻烦。在此提供一个程序,通过输入批量单词,生成对应的单词–翻译对应表,并可以选择将其导入至Excel文件。

需要配置

  1. Chrome浏览器
  2. chromedriver
  3. selenium库,wxPython库,Numpy库

快速下载:

命令行输入pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名

关于chromedriver(重要)

  1. 下载Chromedriver
    在页面http://chromedriver.storage.googleapis.com/index.html中选择您正在使用的Chrome浏览器版本,进入并选择“chromedriver_win32.zip”.(如果您的电脑是Linux或Mac则选择相应下载项)点击下载
    p.s 如何查看浏览器版本:
    点击Chrome右上角的竖排三点,帮助→关于Google Chrome.
  2. 解压缩文件后,发现只有一个EXE文件:chromedrover.exe,将该文件移到chrome.exe所在的文件夹:
  3. 添加路径
    右键单击‘此电脑’选择“属性”
    选择左上角的高级系统设置:

    点击环境变量:

    选择系统变量中的Path:
    点击新建将Chrome所在文件夹路径加入其中(如下图最后一行所示)

    4.一路点击确定即可

代码区

库的引入

from selenium import webdriver
import pandas as pd
import wx, os
import numpy as np

单词记录界面的构造

def RecordSurface():class RecordSurface(wx.Frame): #实现记录单词的GUI界面word_list = ""def __init__(self, parent=None, id=-1):super().__init__(parent, id=id, title='单词记录', size=(400, 300))self.Center()panel = wx.Panel(self)wx.StaticText(panel, label='输入新单词,一个单词一行', pos=(135, 10))self.text = wx.TextCtrl(panel,size=(100, 150),pos=(150, 30),style=wx.TE_MULTILINE)self.button_confirm = wx.Button(panel, label='确认', pos=(120, 190))self.button_cancel = wx.Button(panel, label='取消', pos=(210, 190))self.button_confirm.Bind(wx.EVT_BUTTON, self.OnclickSubmit)self.button_cancel.Bind(wx.EVT_BUTTON, self.OnclickCancel)def OnclickSubmit(self, event):#点击确认键则提交输入单词self.word_list = self.text.GetValue().splitlines()self.Close()def OnclickCancel(self, event): #点击取消则清空输入self.text.SetValue("")app = wx.App() #执行GUI界面运转(frame := RecordSurface()).Show()app.MainLoop() #结束GUI界面运转return frame.word_list #返回所记录的生词列表

单词翻译界面的构造

def Translator(word_list: list):option = webdriver.ChromeOptions()option.add_argument('headless')browser = webdriver.Chrome(chrome_options=option) browser.get('http://fanyi.youdao.com/')#前4行:以不显式打开Chrome页面的方式访问有道翻译browser.find_element_by_id('inputOriginal').send_keys('\n'.join(word_list)) #在有道翻译页面找到填写单词的HTML元素并向其中递交生词序列browser.find_element_by_id('transMachine').click() #点击页面中的翻译按钮df = pd.DataFrame({'单词': word_list, '释义': browser.find_element_by_id("transTarget").text.splitlines()}) #将生词和释义构成template = "%-15s%s\n"str_df = "单词".center(15) + "释义".center(10) + '\n'for e in list(np.array(df)):str_df += (e[0].center(15) + e[1].center(10) + '\n') #生成在GUI上展示的单词--释义对照表class Translator(wx.Frame): #单词翻译界面def __init__(self, parent=None, id=-1):super().__init__(parent, id=id,size=(400,300),title='翻译完成')panel = wx.Panel(self)self.Center()self.text = wx.TextCtrl(panel, size=(200, 150), pos=(90, 35),style=wx.TE_MULTILINE|wx.TE_READONLY)self.text.SetValue(str_df)wx.StaticText(panel, label='翻译完成,结果如下', pos=(140, 10))self.button_save = wx.Button(panel, label='导出Excel',pos=(110, 200)) self.button_exit = wx.Button(panel, label='完成', pos=(200, 200))self.button_save.Bind(wx.EVT_BUTTON, self.Save)self.button_exit.Bind(wx.EVT_BUTTON, self.Exit)def Save(self, event): #选择以xlsx的形式导出到本文件夹if not os.path.exists('word.xlsx'):df.to_excel('word.xlsx') #如果第一次使用,则新建文件else: pd.concat([pd.read_excel('word.xlsx', index_col=0), df], ignore_index=True).to_excel('word.xlsx') # 多次使用,则是在尾部添加内容wx.MessageBox('导出成功!文件名:"word.xlsx"')self.Close()wx.MessageBox('欢迎再次使用本系统!')def Exit(self, event):self.Close()wx.MessageBox('欢迎再次使用本系统!') #观察结果后直接退出app = wx.App()Translator().Show()app.MainLoop()

主函数运行

if __name__ == "__main__":Translator(RecordSurface()) #先运行单词记录界面,返回单词列表,然后翻译

然后就可以进行翻译操作啦!但是不足之处存在:未设计长句翻译功能,不容忍拼写错误(拼成另一个合法单词除外)等,如果有读者对此有类似需求的话,我会持续更新!

简易单词翻译工具的制作相关推荐

  1. 【新手】基于C++Qt5通过调用百度翻译API制作简易翻译工具

    基于C++Qt5通过调用百度翻译API制作简易翻译工具 目录 基于C++Qt5通过调用百度翻译API制作简易翻译工具 写在前面 步骤: 1.注册百度翻译开放平台账号并开通翻译服务 2.下载安装Qt5和 ...

  2. python制作查询工具发给别人使用_用Python做一个简单的翻译工具

    编程本身是跟年龄无关的一件事,不论你现在是十四五岁,还是四五十岁,如果你热爱它,并且愿意持续投入其中,必定会有所收获. 本文就来自编程教室一位"小"读者的投稿(互助学习1群里的同学 ...

  3. 用Python制作翻译工具

    简单介绍 因为我英文不好,对接口.函数.结构体起名字的时候特别为难,因此我我打算使用Python写了一个工具在输入框输入中文,就可以生成Golang语言对应的接口.函数或接口体的写法:也可以切换到英文 ...

  4. 惊了,MATLAB竟能制作如此方便的划词翻译工具???

    我点开程序一看,程序第一行就写着import, 却歪歪斜斜的每行上都是着MATLAB几个大字. 我横竖睡不着,仔细看了半夜, 才从字缝里看出字来,满页都写着 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ...

  5. 游戏翻译工具截屏翻译工具源代码 图片单词识别

    游戏翻译工具截屏翻译工具源代码 # -*- coding: utf-8 -*- """ Created on Mon Jan 14 23:24:05 2019 截取屏幕英 ...

  6. 前端实现中文摩斯码制作翻译工具

    摩斯密码全称摩尔斯电码,是由M国人摩尔斯在1837年发明.从外表来看,它是由点dot(.)划dash(-)这两种符号所组成的一组时通时断的字符串.摩尔斯码在早期的无线电上作用是非常大的,它是每个无线电 ...

  7. python制作自己的日用翻译工具

    python制作自己的日用翻译工具 还在为起变量名而烦恼? 每次都得上百度打开翻译? 快用python来做属于自己的翻译工具吧! 源码附上(python爬虫实现) import urllib.requ ...

  8. python的翻译-用Python做一个简单的翻译工具

    编程本身是跟年龄无关的一件事,不论你现在是十四五岁,还是四五十岁,如果你热爱它,并且愿意持续投入其中,必定会有所收获. 本文就来自编程教室一位"小"读者的投稿(互助学习1群里的同学 ...

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

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

最新文章

  1. 20天拿到美团快手小米搜狐跟谁学offer
  2. 无人驾驶、VR、AR时代即将开启,中国电信2018年将完成5G商用版本
  3. javascript 函数声明与函数表达式的区别
  4. Python 的运算符
  5. 用python 中的链表 实现 截取其中一部分_Python数据结构——链表的实现
  6. 初次尝试HTML,用记事本编写代码并以html格式保存后用Google浏览器打开
  7. SAP Cloud for Customer和Hybris Commerce的session保护机制
  8. .NET Core 3.0 中的数据库驱动框架 System.Data
  9. 《一天聊一个设计模式》 抽象工厂
  10. 单反相机内部光线反射原理
  11. jzoj4313 电话线铺设(最小生成树+最近公共祖先)
  12. oracle体系结构视频学习笔记
  13. PHP作用域和文件夹操作
  14. java 容器类 面试_校招面试之Java容器
  15. myloader还原恢复详解
  16. 解决keil注册机和编译错误的问题2020-12-28
  17. XML解析之 MSXML应用总结 开发篇(上)
  18. c语言英文字母降序排列,英文单词排序
  19. 计算机是否能安装64位操作系统,电脑装32位还是64位系统
  20. 鸿蒙时代实力排名,混沌氏(浑沌)、鸿蒙氏,盘古开天辟地时两个最强大的部落首领?...

热门文章

  1. sigaction函数
  2. 用Python爬取电影数据并可视化分析
  3. ajax请求415错误
  4. 全面解读文本情感分析任务
  5. Surging实践经验
  6. 多普达创建人杨兴平:技术为王的时代已经过去
  7. 【猿人学WEB题目专解】猿人学第3题
  8. 网页设计上机考试原题_《网页设计与制作》上机考试试题2
  9. ArcGIS Pro批量修改图层唯一值符号的标注
  10. GitKraken 小章鱼使用教程