一.API的概念

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作   机制的细节。

二.百度翻译开放平台

由API的概念可以知道,很多大型的平台都提供API接口。这里使用的是百度翻译的API接口。下面提供百度翻译开放平台的

网址:http://api.fanyi.baidu.com/api/trans/product/index。进入平台后,点击【立即使用】,申请ID和SECRECT KEY,申请到了就可以通过ID和密钥调用API接口实现相应功能了。

下图是我的开发者信息里面的ID和密钥。

在开发平台上有【文件支持】栏,通过该栏目,可以找到各种API接口的技术文档,可以根据技术文档的要求设置,设置接入方式。

三.程序编写

1.地址设置

首先设置url地址,和申请到的ID和密钥。

# set baidu develop parameter
apiurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
appid = '你的ID'
secretKey = '你的密钥'

因为翻译代码要频繁调用,这里单独列为一个函数:

# 翻译内容 源语言 翻译后的语言
def translateBaidu(content, fromLang='en', toLang='zh'):salt = str(random.randint(32768, 65536))sign = appid + content + salt + secretKey  #appid+q+salt+密钥 的MD5值sign = hashlib.md5(sign.encode("utf-8")).hexdigest() #对sign做md5,得到32位小写的signtry:#根据技术手册中的接入方式进行设定paramas = {'appid': appid,'q': content,'from': fromLang,'to': toLang,'salt': salt,'sign': sign}response = requests.get(apiurl, paramas)jsonResponse = response.json()  # 获得返回的结果,结果为json格式dst = str(jsonResponse["trans_result"][0]["dst"])  # 取得翻译后的文本结果return dstexcept Exception as e:print(e)

这里使用的源文件是英文语句存在【name.xlsx】文件中,翻译后的文档也会存入到【name1.xlsx】中。其中,【openpyxl】模块包是功能强大的excel处理包,这里用该模块对文件进行处理。

def excelTrans(srcFilename=r'F:\日常··练习\api\Python3 调用百度翻译Excel文件\source.xlsx',desFilename=r'F:\日常··练习\api\Python3 调用百度翻译Excel文件\result.xlsx',srcSheet='Sheet1',    numColumn = 2,srcRowBegin=1,srcRowEnd=44,desColumn=1,desSheet='result2'):wb = openpyxl.load_workbook(srcFilename)ws = wb[srcSheet]wb2 = Workbook()#ws2 = wb2.create_sheet(title=desSheet)    #ws2 = wb2.create_sheet(title=desSheet,index = 1)for j in range(numColumn ):        ws2 = wb2.create_sheet(title=desSheet,index = j)        for i in range(srcRowBegin, srcRowEnd, 1):result = ws.cell(row=i, column=j+1).valueif not (result is None):ws2.cell(row=i-srcRowBegin+1, column=desColumn).value = translateBaidu(result)print(11, result)wb2.save(desFilename)

该函数实现了将目标excel中的英文句子翻译为中文,并按列分别存储在不同sheet中:

使用的包和完整代码如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-import hashlib
import random
import openpyxl
from openpyxl import Workbook
import requests# set baidu develop parameter
apiurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
appid = '你的ID'
secretKey = '你的密钥'# 翻译内容 源语言 翻译后的语言
def translateBaidu(content, fromLang='en', toLang='zh'):salt = str(random.randint(32768, 65536))sign = appid + content + salt + secretKeysign = hashlib.md5(sign.encode("utf-8")).hexdigest()try:paramas = {'appid': appid,'q': content,'from': fromLang,'to': toLang,'salt': salt,'sign': sign}response = requests.get(apiurl, paramas)jsonResponse = response.json()  # 获得返回的结果,结果为json格式dst = str(jsonResponse["trans_result"][0]["dst"])  # 取得翻译后的文本结果return dstexcept Exception as e:print(e)
def excelTrans(srcFilename=r'F:\日常··练习\api\Python3 调用百度翻译Excel文件\source.xlsx',desFilename=r'F:\日常··练习\api\Python3 调用百度翻译Excel文件\result.xlsx',srcSheet='Sheet1',        num = 2,#srcColumn=2,srcRowBegin=1,srcRowEnd=44,desColumn=1,desSheet='result2'):wb = openpyxl.load_workbook(srcFilename)ws = wb[srcSheet]wb2 = Workbook()#ws2 = wb2.create_sheet(title=desSheet)    #ws2 = wb2.create_sheet(title=desSheet,index = 1)for j in range(num):        ws2 = wb2.create_sheet(title=desSheet,index = j)        for i in range(srcRowBegin, srcRowEnd, 1):result = ws.cell(row=i, column=j+1).valueif not (result is None):ws2.cell(row=i-srcRowBegin+1, column=desColumn).value = translateBaidu(result)print(11, result)wb2.save(desFilename)
if __name__ == '__main__':print('translate begin...')excelTrans()print('ending...')

Python3调用百度翻译API进行英文翻译相关推荐

  1. 利用有道翻译Api实现英文翻译功能

    有道翻译提供了翻译和查词的数据接口.通过数据接口,您可以获得一段文本的翻译结果或者查词结果.       通过调用有道翻译API数据接口,您可以在您的网站或应用中更灵活地定制翻译和查词功能. 第一步: ...

  2. php英文翻译,利用有道翻译Api实现英文翻译效能

    利用有道翻译Api实现英文翻译功能 有道翻译提供了翻译和查词的数据接口.通过数据接口,您可以获得一段文本的翻译结果或者查词结果.       通过调用有道翻译API数据接口,您可以在您的网站或应用中更 ...

  3. Python3调用百度地图API接口获取结构化地址

    在实际应用中,我们也许会有这样的需求,输入一个地名,就能够知道这个地方的准确地址.例如输入"清华大学",我们就可以知道清华大学在北京的哪个区哪条道路.正好百度地图开放平台服务提供了 ...

  4. python调用百度翻译-python3调用百度翻译API实时翻译的实例代码

    python3调用百度翻译API实现实时翻译 今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是Python2,我需要Python3,就自己写了一个 ...

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

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

  6. python调用百度接口实现ocr识别_Python 3调用百度OCR API实现剪贴板文字识别

    本程序调用百度OCR API对剪贴板的图片文字识别,配合CaptureScreen软件,可快速识别文字. #!python3 import urllib.request, urllib.parse i ...

  7. 【c#】Form调用百度地图api攻略及常见问题

    首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...

  8. C#调用百度地图API入门解决BMap未定义问题

    本文主要是最近帮助好友研究JavaScript的百度地图API,同时显示到C# Winform界面.同时遇到了BMap未定义的错误(BMap is not defined)及解决方法.以前写过基于An ...

  9. 调用百度汇率api 获取各国的汇率值

    设置一个定时任务,每天更新汇率java代码如下 package com.thinkgem.jeesite.modules.huiLvApi.service;import java.io.Buffere ...

最新文章

  1. 山东省2021年高考成绩查询平台6,山东2021年高考成绩改为6月26日前公布
  2. FTP多用户权限 linux环境 一站式解决方案(基础篇)
  3. 废旧手机屏幕做单片机显示屏_ipadmini显示屏拆解,一探究竟
  4. 普通固定电话机使用与原理简介
  5. 【JAVA之NIO框架介绍】
  6. 【由浅入深_打牢基础】WEB缓存投毒(上)
  7. 【SHOI2008】【BZOJ1023】cactus仙人掌图
  8. 和大人和纪晓岚的经典台词
  9. 《哈利波特》电影全集+有声书免费领取!带你重返儿时魔法世界……
  10. 优化问题中什么形式有闭式解
  11. 翻页时钟Fliqlo不显示时间
  12. TM4C123G学习笔记1——CCS导入TivaWare软件包
  13. 基于Ubuntu20.04应用服务器的磁盘挂载与卸载
  14. 环路补偿之单极点分析 ---- 以“反相放大器”为例分析
  15. 仙人掌最短路--bzoj2125
  16. 《R语言数据挖掘:实用项目解析》——第2章,第2.8节假设检验
  17. 【JY】中南建筑设计院:雷神山医院设计仿真应用与设计创新那些事
  18. cad .net 2010 DeleteUnmanagedObject 错误
  19. Word文档显示或消除修改痕迹
  20. Wi-Fi P2P overview(一)

热门文章

  1. 射频测试 —— 蓝牙定频测试1
  2. 机器学习应用实例|如何识别标题党?
  3. 刚体运动的表示及其Mathematica实现
  4. Linux运行安卓应用
  5. 开发落网电台windows phone 8应用的计划(5)
  6. Java 8 字符串和时间相互转换
  7. 谁引爆了手机里的电池?
  8. 一个专门泄露数据库的黑产论坛的数据库被泄露
  9. java怎么销毁session_「销毁session」java中session和cookie的创建与销毁
  10. c语言ascii码字符集共有多少个编码,标准ascii码字符集共有多少个编码