天天看点

RPA——Python 调用翻译接口

艺赛旗 RPA10.0全新首发免费下载 点击下载

http://www.i-search.com.cn/index.html?from=line1

最近在读 gartner 的一些文档,然后,,,全英文 ?然后看的我头昏脑涨。。。。重点是效率低下。。。那我就想打开了我的有道,准备看到不认得的就鼠标悬浮一会,然后等反馈。。

RPA——Python 调用翻译接口

可是,,这也太难了吧。。。能不能再偷点懒啊 ?,然后我就想着能不能调翻译接口直接帮我整篇翻译完好了,理论上这是完全可以做到的哦 ?说干就干,辛苦一小会能节省一大把时间 ~

思路理理 ~

首先:把我需要看的文档内容都读取出来,好吧我的文档是 pdf 类型,那就对应的挑选PyPDF2之类的库来读取就好了

其次:把我读取出来的数据该整理整理,然后连好接口获取反馈,那翻译的接口我就用的有道了

最后:为了方便,把我得到的反馈直接都写进 txt 文本里,就好啦

结果如下:

RPA——Python 调用翻译接口

代码附上:

from PyPDF2.pdf import PdfFileReader

import urllib.request

import urllib.parse

import json

def youdao_translate(content):

‘’‘有道翻译’’’

youdao_url = ‘http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule’

data = {}

# 调接口时所需参数,看自己情况修改,不改也可调用

data[‘i’] = content

data[‘from’] = ‘AUTO’

data[‘to’] = ‘AUTO’

data[‘smartresult’] = ‘dict’

data[‘client’] = ‘fanyideskweb’

data[‘salt’] = ‘’

data[‘sign’] = ‘’

data[‘doctype’] = ‘json’

data[‘version’] = ‘2.1’

data[‘keyfrom’] = ‘fanyi.web’

data[‘action’] = ‘FY_BY_CLICKBUTTION’

data[‘typoResult’] = ‘false’

data = urllib.parse.urlencode(data).encode(‘utf-8’)

# 发送翻译请求

youdao_response = urllib.request.urlopen(youdao_url, data)

# 获得响应

youdao_html = youdao_response.read().decode(‘utf-8’)

target = json.loads(youdao_html)

# 取出需要的数据

trans = target[‘translateResult’]

ret = ‘’

for i in range(len(trans)):

line = ‘’

for j in range(len(trans[i])):

line = trans[i][j][‘tgt’]

ret += line + ‘\n’

return ret

def translate(path, new_path):

‘’‘读取pdf内容,并翻译,写入txt文件’’’

f = open(path, ‘rb’) # 打开需要读取的pdf

pdf = PdfFileReader(f) # 创建实例

# 读取每一页pdf并翻译写入txt

for i in range(0, pdf.getNumPages()):

# 获取pdf文本内容

extractedText = pdf.getPage(i).extractText()

# 经测试发现最后一行换行符需丢弃,可采取不同方式,此处仅作参考

content = extractedText.split(’\n’)[:-1]

content=(’\n’).join(content)

# 创建并打开txt文件

with open(new_path, ‘a+’) as f1:

# 有道翻译内容

trans = youdao_translate(content)

# 写入内容及翻译结果,就直接在txt里可以一段原文一段翻译后的对比着看,编码测试时遇到过错误,建议不要改动代码

f1.write(content.encode(‘gbk’,‘ignore’).decode(‘gbk’,‘ignore’) + ‘\n’)

f1.write(trans.encode(‘gbk’,‘ignore’).decode(‘gbk’,‘ignore’))

f.close()

translate(‘C:\Users\XXXX.pdf’, ‘C:\Users\XXXXXX.txt’) # 根据自己实际pdf文档路径,及想要生成翻译文档路径对应修改参数即可

这个懒还是没有白偷啦 ~ ?

最新 优选 关注