python 调用翻译接口

最近在读 gartner 的一些文档,然后,,,全英文 😵然后看的我头昏脑涨。。。。重点是效率低下。。。那我就想打开了我的有道,准备看到不认得的就鼠标悬浮一会,然后等反馈。。python 调用翻译接口
可是,,这也太难了吧。。。能不能再偷点懒啊 😟,然后我就想着能不能调翻译接口直接帮我整篇翻译完好了,理论上这是完全可以做到的哦 😎说干就干,辛苦一小会能节省一大把时间 ~

思路理理 ~
首先:把我需要看的文档内容都读取出来,好吧我的文档是 pdf 类型,那就对应的挑选PyPDF2之类的库来读取就好了
其次:把我读取出来的数据该整理整理,然后连好接口获取反馈,那翻译的接口我就用的有道了
最后:为了方便,把我得到的反馈直接都写进 txt 文本里,就好啦
结果如下:
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文档路径,及想要生成翻译文档路径对应修改参数即可

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