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

python3调用百度翻译API实现实时翻译

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

# coding: utf8

"""

@Author: LCY

@Contact: lchuanyong@126.com

@blog: http://http://blog.csdn.net/lcyong_

@Date: 2018-01-15

@Time: 19:19

说明: appid和secretKey为百度翻译文档中自带的,需要切换为自己的

python2和python3部分库名称更改对应如下:

httplib ----> http.client

md5 ----> hashlib.md5

urllib.quote ----> urllib.parse.quote

官方链接:

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

"""

import http.client

import hashlib

import json

import urllib

import random

def baidu_translate(content):

appid = "20151113000005349"

secretKey = "osubCEzlGjzvw8qdQc41"

httpClient = None

myurl = "/api/trans/vip/translate"

q = content

fromLang = "zh" # 源语言

toLang = "jp" # 翻译后的语言

salt = random.randint(32768, 65536)

sign = appid + q + str(salt) + secretKey

sign = hashlib.md5(sign.encode()).hexdigest()

myurl = myurl + "?appid=" + appid + "&q=" + urllib.parse.quote(

q) + "&from=" + fromLang + "&to=" + toLang + "&salt=" + str(

salt) + "&sign=" + sign

try:

httpClient = http.client.HTTPConnection("api.fanyi.baidu.com")

httpClient.request("GET", myurl)

# response是HTTPResponse对象

response = httpClient.getresponse()

jsonResponse = response.read().decode("utf-8")# 获得返回的结果,结果为json格式

js = json.loads(jsonResponse) # 将json格式的结果转换字典结构

dst = str(js["trans_result"][0]["dst"]) # 取得翻译后的文本结果

print(dst) # 打印结果

except Exception as e:

print(e)

finally:

if httpClient:

httpClient.close()

if __name__ == "__main__":

while True:

print("请输入要翻译的内容,如果退出输入q")

content = input()

if (content == "q"):

break

baidu_translate(content)

官方版本:

#/usr/bin/env python

#coding=utf8

import httplib

import md5

import urllib

import random

appid = "20151113000005349"

secretKey = "osubCEzlGjzvw8qdQc41"

httpClient = None

myurl = "/api/trans/vip/translate"

q = "apple"

fromLang = "en"

toLang = "zh"

salt = random.randint(32768, 65536)

sign = appid+q+str(salt)+secretKey

m1 = md5.new()

m1.update(sign)

sign = m1.hexdigest()

myurl = myurl+"?appid="+appid+"&q="+urllib.quote(q)+"&from="+fromLang+"&to="+toLang+"&salt="+str(salt)+"&sign="+sign

try:

httpClient = httplib.HTTPConnection("api.fanyi.baidu.com")

httpClient.request("GET", myurl)

#response是HTTPResponse对象

response = httpClient.getresponse()

print response.read()

except Exception, e:

print e

finally:

if httpClient:

httpClient.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以为您提供一个简单的例子。请注意,需要使用百度翻译 API 需要注册并获取 API Key。 首先,我们需要安装一些必要的库,包括 Flask 和 PyPDF2: ``` pip install flask pip install PyPDF2 ``` 然后,我们可以创建一个名为 `app.py` 的文件,并写入以下代码: ``` from flask import Flask, request from PyPDF2 import PdfFileReader import requests app = Flask(__name__) @app.route("/translate", methods=["POST"]) def translate(): # 获取 PDF 文件 file = request.files["pdf_file"] pdf = PdfFileReader(file.stream) # 读取 PDF 中的内容 text = "" for page in range(pdf.getNumPages()): text += pdf.getPage(page).extractText() # 调用百度翻译 API 翻译为中文 api_key = "your_api_key" url = f"https://api.fanyi.baidu.com/api/trans/vip/translate?q={text}&from=en&to=zh&appid={api_key}" response = requests.get(url) result = response.json()["trans_result"][0]["dst"] return result if __name__ == "__main__": app.run() ``` 最后,我们可以在终端中运行该应用: ``` python app.py ``` 现在,您可以通过 POST 请求向 `http://localhost:5000/translate` 发送 PDF 文件,并得到翻译后的中文内容。 ### 回答2: 使用Python的Flask框架,可以轻松实现读取PDF文件内容并调用百度翻译API进行中文翻译。 首先,需要安装必要的库。可以使用pip命令安装flask和百度翻译APIPython SDK: ``` pip install flask pip install baidu-aip ``` 接下来,创建一个名为app.py的Python文件,并导入所需的库: ```python from flask import Flask, request from aip import AipNlp app = Flask(__name__) ``` 然后,创建一个路由来处理POST请求,该请求会接收上传的PDF文件,并返回翻译后的文本。在路由函数中,我们使用百度翻译APIPython SDK来进行翻译: ```python @app.route('/translate', methods=['POST']) def translate(): # 读取上传的PDF文件 file = request.files['file'] content = file.read() # 调用百度翻译API进行翻译 APP_ID = 'Your APP ID' API_KEY = 'Your API Key' SECRET_KEY = 'Your Secret Key' client = AipNlp(APP_ID, API_KEY, SECRET_KEY) result = client.basicGeneral(content)['words_result'] translated_text = '' for item in result: translated_text += item['words'] + '\n' return translated_text ``` 最后,启动Flask应用程序: ```python if __name__ == '__main__': app.run() ``` 运行该Python文件后,可以通过发送POST请求到"/translate"路径来上传PDF文件并获取翻译后的文本。 请注意,在使用百度翻译API之前,你需要先在百度开发者平台上创建一个应用并获得相应的APP ID、API Key和Secret Key。 以上就是使用Python Flask框架读取PDF文件内容并调用百度翻译API进行翻译的简单实现。 ### 回答3: 使用Python Flask框架可以轻松实现读取PDF文件内容并调用百度翻译API将其翻译为中文的功能。首先,我们需要安装Flask和百度翻译APIPython库。 1. 安装Flask库: 在命令行中运行以下命令: ``` pip install flask ``` 2. 安装百度翻译APIPython库: 在命令行中运行以下命令: ``` pip install baidu_trans ``` 然后,我们可以创建一个Flask应用,并定义一个POST路由,用于接收上传的PDF文件。在这个路由中,我们将读取PDF文件内容并调用百度翻译API进行翻译。 下面是一个示例的代码: ```python from flask import Flask, request from pdfminer.high_level import extract_text from baidu_trans import BaiduTrans app = Flask(__name__) @app.route('/translate', methods=['POST']) def translate(): file = request.files['file'] content = extract_text(file) # 实例百度翻译API trans = BaiduTrans(appid='your_appid', secret_key='your_secret_key') result = trans.translate(content, from_lang='auto', to_lang='zh') return result if __name__ == '__main__': app.run() ``` 在上面的代码中,我们使用PDFMiner库的`extract_text`函数来读取PDF文件的内容。然后,我们实例化了百度翻译API,并调用其`translate`方法将内容翻译为中文。 请注意,在使用该代码之前,您需要在百度开发者平台上创建一个应用程序,并获取到您的App ID和密钥。将这些信息替换到代码中的`your_appid`和`your_secret_key`位置。 您可以使用Postman或其他工具通过POST请求将PDF文件发送到`/translate`路由,并且服务器将返回翻译后的内容。 这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值