当前位置: 首页 > news >正文

如何使用Python + 百度翻译API 自动大批量免费翻译Excel文件中的外语内容

手里有一个Excel文件,包括了大量的亚马逊德语搜索词(关键词),每个单元格1个,需要翻译为中文。但是文件大小超过了10M,不能使用百度或Google免费的文档功能,如果手工一个个的翻译然后粘贴又太麻烦,于是想到用Python加免费翻译API完成。

一、openpyxl库

用Python编辑处理Excel文件主要有两个最流行的库是openpyxl和pandas,因为我处理的Excel文件我不想改变它的格式,仅想改变部分单元格内容,于是采用了openpyxl库。
openpyxl是一个用于读写Excel文件(.xlsx格式)的库,适用于简单的Excel文件操作。
安装方式:可以使用pip安装它,命令如下:

pip install openpyxl

其他辅助库:os,requests,hashlib,time。 requests用于发送网络请求,将要翻译的关键词发送到百度并接收来自百度翻译云服务器的翻译结果。hashlib 是 Python 标准库的一部分,不需要使用 pip 单独安装。这个库用于处理哈希函数,如 MD5、SHA-1 等,发送请求API需要用到,因为它用于计算 sign 参数。os用于设定文件夹等,time库用于设定定时请求,不是必须的。

二、百度翻译API

现在常用的网络翻译有Google和百度翻译。要使用Python调用Google翻译(https://translate.google.com.hk/)或Baidu翻译(https://fanyi.baidu.com/)的翻译服务,需要先申请一个开发者API,开始打算使用Google的API,结果在Google网站(https://cloud.google.com/translate/docs/reference/rest)上转了一圈,从一堆英文文档中没有快速找到需要的API,就果断跳到了百度翻译API(https://fanyi-api.baidu.com/,之前有注册百度账号,快速找到了百度翻译的API。2022年8月1日起,通用翻译API标准版免费调用量调整为5万字符/月,足够用了。
百度翻译API

百度翻译API介绍文档:
https://fanyi-api.baidu.com/product/113

百度通用翻译API文档
申请完API后最重要的信息在这里,查看自己的API值:
在这里插入图片描述

三、Python代码

3.1 主要思路

用openpyxl库来读取和修改及保存要翻译的Excel文件。要翻译的德语关键词位于Excel文件的A列,用for循环里的openpyxl读取单元格的内容后用requests发送网络请求,将要翻译的关键词发送到百度并接收来自百度翻译云服务器的翻译结果,然后再用openpyxl写入Excel文件并保存。

3.2 几个注意事项及程序特点:

3.2.1 批量间隔发送:

如果一个单元格的一个关键词请求1次百度翻译服务器,快速大量的请求会超过限额而被服务器拒绝,所以使用time库每个for循环定时间隔等待10秒,同时一次读取50个词再向百度翻译服务器发送一次请求。这样可以减少调用次数。

3.2.2 仅翻译可见单元格:

原始Excel里包括了上万个关键词,但是我并不想全部都翻译,所以用了Excel的数据筛选功能隐藏掉了很多行,我不希望翻译这些隐藏的行,所以在程序里有判断某个行是否是隐藏了,如果是就跳过。

3.2.3 翻译语种:

百度支持几十种语言的相互翻译,注意选择的语言代码正确。本例子程序翻译的是德语到中文。

3.3 程序代码:

<
http://www.lryc.cn/news/294614.html

相关文章:

  • ONLYOFFICE:一站式办公,探索高效办公新境界
  • nginx反向代理----->微服务网关----->具体微服务
  • 怎么清理电脑内存?详细图文教程分享!
  • CKS1.28【1】kube-bench 修复不安全项
  • 6.s081 学习实验记录(五)traps
  • 探索设计模式的魅力:从单一继承到组合模式-软件设计的演变与未来
  • 文心一言4.0API接入指南
  • Python循环语句——while循环的嵌套应用
  • 数据库管理-第145期 最强Oracle监控EMCC深入使用-02(20240205)
  • Centos 7系统安装proftpd-1.3.8过程
  • DevExpress ASP.NET Web Forms v23.2最新版本系统环境配置要求
  • 5分钟快速掌握 XML (Extensible Markup Language)
  • Python中的HTTP代理服务器和客户端的区别与联系
  • 升级Oracle 单实例数据库19.3到19.22
  • 在Vue中如何动态绑定class和style属性
  • 使用Docker部署DashDot服务器仪表盘并结合cpolar实现公网监测服务器
  • Android kernel logcat时间戳显示错乱修改
  • 2024年考PMP还有什么用?
  • 解决zabbix图像中文乱码
  • centos间文件传输
  • 2.0 Zookeeper 安装配置
  • Matomo 访问图形显示异常
  • MySQL学习记录——사 表结构的操作
  • 【华为 ICT HCIA eNSP 习题汇总】——题目集12
  • Redis发布订阅及事务管理
  • 设计模式第五天|代理模式 7-小明买房子 装饰模式 8-咖啡加糖
  • mongodb数据库集合(表)的创建和数据修改
  • MySQL 的UI
  • Leetcode 3026. Maximum Good Subarray Sum
  • elementUI之el-form-item的嵌套的场景