任务描述:将2000个英文单词翻译成中文单词
选择的是百度翻译进行翻译英文单词

1、百度翻译开发者平台

首先需要在百度翻译开发者平台申请一个 appid

我这里已经申请过了,这样就会得到一个appid和密码

如果没有特别要求,免费的标准版就足够使用了,尊享版是需要收费的。也可以使用其他翻译平台,应该都是要申请账号才能使用,因为之前刚好申请了百度翻译账号,于是就直接使用这个平台了。

2、代码实现

具体实现代码参考了下面的教程:
https://blog.csdn.net/weixin_36139240/article/details/113980180
导入需要的第三方库

import random
import requests
import hashlib
  • 百度翻译对应的 url
api_url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'

我直接打开百度翻译网页复制的网址和这个不一样哈哈哈哈,然后输入下面这个网址

http://api.fanyi.baidu.com/api/trans

则得到的是百度翻译开发者平台这个网页,后面的具体路径可能才调用到了翻译脚本

  • 设置发送请求参数
    输入的单词作为 ‘q’ 的关键字传入
api_data = {'q': en_str,'from': 'en','to': 'zh','appid': appid,'salt': salt,'sign': sign}
  • 发送请求获取相应的数据
req_get = requests.get(api_url, api_data)
  • 解析数据
    得到的翻译结果是 json 类型,从json 文件中获得翻译的文本
result = {'from': 'en', 'to': 'zh', 'trans_result': [{'src': 'hello', 'dst': '你好'}]}
result['trans_result'][0]['dst'] = '你好'
  • 完整的代码
def get_md5(self,string):  # 返回字符串md5加密hl = hashlib.md5()hl.update(string.encode('utf-8'))return hl.hexdigest()
def en_to_zh(en_str):  # 英语翻译成中文api_url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'appid = 'xxx'secretKey = 'xxxx'salt = random.randint(32768, 65536) # 这个不知道是为啥sign =get_md5(appid + en_str + str(salt) +secretKey)api_data = {'q': en_str,'from': 'en','to': 'zh','appid': appid,'salt': salt,'sign': sign}req_get = requests.get(api_url, api_data)result = req_get.json()return resultif __name__ == "__main__":print(en_to_zh("hello"))

3、翻译过程

任务描述:需要翻译2000个英文单词,以列表形式存放
第一次尝试
for 循环对词汇一个个翻译,然后输出下面的错误

这是因为 for 循环访问网址就散过于频繁,导致个别翻译不成功,所以输出的 result中没有 trans_result 的结果

于是我加入语句 time.sleep(1) (需要先 import time),表示每调用一次就等待1秒钟,再继续进行下一次调用,但是词汇有两千多个,这样速度实在太慢了。

第二次尝试
将 整个列表 转换成字符串(要先把方括号、引号去掉,结束了还得把中文的逗号替换成英文的逗号),结果又报了下面的错误

是因为一下子翻译的词汇过多,百度翻译一次限制5000词以内(一个字母算一个词)

第三次尝试
于是我改成一次翻译1000个词(根据具体情况进行调整),确实很快就运行出结果了,而且貌似是因为一次性翻译的词汇较多,构成上下文语义关系??翻译的结果要比逐个翻译的结果要好,我以为事情到这里就差不多结束了,结果发现翻译得到的中文结果要比英文的词汇个数少。比如我一次性翻译1000个英文单词,得到的中文只有720个,我猜测是有些词汇被黏在一起了,当成同一个词。

第四次尝试
于是我改成一次翻译30个词汇,每次都输出中文词汇个数,总是缺斤少两的,原来有些词汇根本没翻译出来,气死我了气死我了

最后,我还是用回了第一次的方法,大概40分钟吧,才翻译好了2000个词汇,如果想快一点,可以把等到的时间time.sleep(1) 减少一点,0.5秒什么的,但是我担心时间太短了会中途报错,于是就选择稳妥一点的方式。当然啦,中西文化还是有差异的,翻译出来的结果大部分还可以,其他不合适的还得手动修改。

PS:在调用百度翻译平台计算的时候,需要通过抓包工具来分析请求数据,如果不了解过程就只能使用别人写好的请求参数,连这些参数是什么意思都不清楚(我就是不会那个不会用的哈哈哈哈,等我学会了回来写个教程,下次一定)

Python批量翻译英文成中文相关推荐

  1. python批量翻译excel表格中的英文

    python批量翻译excel表格中的英文 需求背景 主要设计 分析 具体实现 表格操作 请求百度翻译api 多线程 控制台显示进度 完整源码 需求背景 女朋友的论文需要爬取YouTube视频热评,但 ...

  2. python练习题--阿拉伯数字转换成中文数字

    python练习题–阿拉伯数字转换成中文数字 用户输入任意阿拉伯数字,如[123456],把它转换成中文数字[壹拾贰万叁仟肆佰伍拾陆] 以前面试时面试官问的问题,当时没能答出来,今天初步解决,把它记录 ...

  3. python 文本翻译 项目_如何用python批量翻译文本?

    首先,看一下百度翻译的官方api文档. http://api.fanyi.baidu.com/api/trans/product/apidoc # coding=utf-8 #authority:bi ...

  4. Python 批量翻译图片 附详细代码

    环境:Python3.7 目录 概念解释 有道智云 API 调用接口的代码 实现批量处理 概念解释 图片翻译:基于文字识别与文本翻译技术,结合组段和渲染技术,满足用户翻译图片文字的需求,提升输入效率. ...

  5. Python批量翻译英语单词(三十七)

    用途: 对批量的英语文本,生成英语-汉语翻译的单词本,提供Excel下载 本代码实现: 提供一个英文文章URL,自动下载网页: 实现网页中所有英语单词的翻译: 下载翻译结果的Excel 涉及技术: p ...

  6. python 把数字转换成中文大写

    def conversionString(intnumber):'''把数字转换成中文大写,例如:1->一 ,25->二十五,49->四十九Parameters----------i ...

  7. Python脚本翻译英文到汉语

    下载的词典没找到几个好用的,就想能不能用脚本终端简单的实现呢.结果到网上找了一圈,有几个网友的也在做这件事情.参考他们的成果,做了一些改动. 创建完python文件后,创建个软链接到$PATH路径中, ...

  8. python将数字转变为中文读法-python中将阿拉伯数字转换成中文的实现代码

    代码如下: #!/usr/bin/python #-*- encoding: utf-8 -*- import types class NotIntegerError(Exception): pass ...

  9. Python编写数字转换成中文大写

    问题描述:输入一串数字金额,然后打印出它的中文大写. 利用列表下标进行转换. list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾 ...

最新文章

  1. 第六周项目一-分数类的雏形(2)
  2. VirtualAlloc 申请可执行内存
  3. Android中利用ant进行多渠道循环批量打包(一)
  4. 自定义Spring Data JPA存储库
  5. Mr.J--正则表达式
  6. ffmpeg 推流同时录像命令_ffmpeg推流命令
  7. Oracle 临时表
  8. 使用 Python 进行科学计算 使用 Python 进行科学计算
  9. 国际c语言混乱编码大赛,国际C语言混乱代码大赛(IOCCC)
  10. 20多岁,你迷茫又着急
  11. 详解-线性结构-一元多项式的乘法与加法运算
  12. 牛逼,个人开发者可以申请微信支付了!
  13. 蘑菇街面经(自己的第一次秋招面试)
  14. 探索未知领域,是我犯错了么?
  15. python统计汉字个数是_使用 Python 统计中文字符的数量
  16. pat 1027. Colors in Mars (20)
  17. 小试牛刀【自己翻译】
  18. SaaS服务模式下的电商ERP遇到企业仓库分布于多组织下的管理
  19. 静态属性、静态方法、静态代码块
  20. 阿里云内网和公共NTP服务器(网络时间协议-时间同步服务)

热门文章

  1. 解决执行力问题的思路
  2. rtmp直播和webrtc直播对比优劣何在?
  3. CMD恢复LSP及查询
  4. mPOS安全提升之路
  5. 构建 django项目
  6. 如何下载国家标准分幅影像地图
  7. macOS使用快捷键控制安卓手机音乐播放器
  8. COC建筑拖动的实现
  9. C语言都能用来干吗、我为什么要学C语言
  10. 支付宝开通海外退税 阿里腾讯暗战跨境O2O_21世纪网