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

如何使用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.kler.cn/a/232913.html

相关文章:

  • git入门环境搭建
  • redis bind 127.0.0.1和bind 10.34.56.78的区别
  • 力扣515:在每个树行中找最大值
  • C#文字识别API场景解析、表格识别提取
  • K8资源之endpoint资源EP资源
  • mac终端使用pytest执行iOS UI自动化测试方法
  • Modelsim10.4安装
  • 1123. 铲雪车(欧拉回路)
  • 目标检测 | 卷积神经网络(CNN)详细介绍及其原理详解
  • P59---第二阶段B C 相电流
  • 【Kotlin】Kotlin基本数据类型
  • Python 数据分析库之polars使用详解
  • 【语音合成】中文-多情感领域-16k-多发音人
  • 以用户为中心,酷开科技荣获“消费者服务之星”
  • 腾讯云游戏服务器配置有哪些?
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Video媒体组件
  • 猫头虎分享已解决Bug || CPU过载(CPU Overload):HighCpuUsageWarning, CpuOverloadException
  • 2022年通信工程师初级 实务 真题
  • ElasticSearch 8.x 使用 High Level Client 以 HTTPS 方式链接,SSL 证书、主机名验证器 各是什么,如何忽略
  • 通过遵循最佳做法来提高 EDA 和 HPC 应用程序的 Azure NetApp 文件性能
  • Spring Data Envers 数据审计实战2 - 自定义监听程序扩展审计字段及字段值
  • linux(redhat)重置root密码
  • python学习笔记 -- 字符串
  • 文心一言 VS 讯飞星火 VS chatgpt (197)-- 算法导论14.3 5题
  • os模块
  • 基于JAVA的免税店商城管理系统 开源项目