Python+openpyxl+selenium实现自动翻译中英文脚本!


前言

有时候需要把excel中的中文一个一个翻译成英文,当数量很多的时候,翻译会变的很麻烦,很浪费时间,这里用python写了一个可以全自动翻译的脚本
开始前需要下载一个谷歌浏览器(谷歌,火狐都行,这里讲的是谷歌)


一、库介绍

接下来我跟大家简单的介绍一下下面的三个库:
1.openpyxl 这里主要是用来读写excel文件的,把excel中的中文取出来翻译,然后存回去。

2.Selenium 是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。这里我们主要是用Selenium库中的webdriver模块,用来浏览器的一些操控。

3.time 这里只用到了sleep()函数。

二、使用步骤

1.引入库

import openpyxl as op
from selenium import webdriver
import time

导入之前要在pycharm里装好openpyxl和selenium库

这里在运行的时候可能会出错,原因是selenium版本高了,安装库的时候降低一下版本就好


2.读入数据

ex = op.load_workbook('C:\\Users\\Administrator\\Desktop\\country.xlsx')  # 读取excel文件
Sheet = ex["Sheet1"]  # 定位excel中的表单

这里是你需要读取excel文件的绝对路径。


data1=[]  # 用来存放中文数据
data2=[]  # 用来存放英文数据
x=1
y=1
for i in range(1,7): # 这里的range就是就是需要翻译中文的个数,写的比较死板,懒得写了,自己改吧QAQ
    a1_cell = (Sheet.cell(row=x, column=1)).value
    data1.append(a1_cell) # 取出每个cell小格里得到值存入data1
    x+=1
# print(data1)

3.开始翻译

driver = webdriver.Chrome() # 打开Chrome浏览器
driver.get('https://fanyi.baidu.com/?aldtype=16047#auto/en') # 进入百度翻译
for i in range(0,6): # 同上,需翻译中文的个数,自个改QAQ
	# 通过id定位到百度翻译的输入框,然后把data1中的中文赋值进去
    driver.find_element_by_xpath('//*[@id="baidu_translate_input"]').send_keys(data1[i])
    # 停住2秒
    time.sleep(2)
    # 这里是通过class定位到翻译后得到值
    a = driver.find_element_by_class_name('output-bd').text
    data2.append(a) # 存入data2
    driver.find_element_by_xpath('//*[@id="baidu_translate_input"]').clear() # 清空输入框
# print(data2)

1.这里用sleep()的原因是,翻译的时候需要浏览响应时间,在翻译之前find_element_by_class_name(‘output-bd’).text 是不存在的,需要等js脚本执行完翻译才可检测到这个class值,可以根据需要自行调整。
2.这里在打开浏览器的时候可能会出现问题,原因是浏览器驱动版本和driver版本不一样,具体操作可以参考 这里

下载完对应版本的驱动器之后直接放入python安装的文件夹(如果找不到,可以去环境变量里面找)
在这里插入图片描述查看Chrome浏览器版本可能需要vpn,实在不行就下载这个(推荐上面那个)
Chrome驱动文件下载:点击下载chromedrive


4.存入excel

for i in range(0,6):
    Sheet.cell(row = y, column = 2).value=data2[i] # 保存到想要保存到的区域
    y+=1
ex.save('contry.xlsx') # 保存文件

接下来就可以开始了!

三、效果预览

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值