Python使用百度通用API进行翻译实现

想汉化StarUML这个软件,感觉工作量太大,想要用Python自动翻译。

结果网上找的一个个用不了,或者用一会儿就断。

于是自己手写了一个简单的,只有两个类:APIConfigTranslater

使用 demo

my_api_config = APIConfig("12121123456789", "SFNFENRFNEFLWE")
translater = Translater(my_api_config, from_lang="en", to_lang="zh")
print(translater.translate(
    "hello world, I want to love you, Where is my dog?")
)

结果如下,保持灵活这里就没提取dst

[{'src': 'hello world, I want to love you, Where is my dog?', 'dst': '你好,世界,我想爱你,我的狗在哪里?'}]

调用过快(阈值大概为0.8秒)会导致返回54003,会拒绝访问。

所以一次尽量多发送点文本。

更多问题去FAQ看吧。

APIConfig类

url短期不会变,salt随便填个数字就行。所以这里只需要填写appidkey这两个参数。

到百度进行申请(申请链接:https://fanyi-api.baidu.com/,免费版的一申请就能通过)。

开发者信息页面有这两个参数。

# 百度翻译API配置,链接对的话,填下ID和密匙就OK。
class APIConfig:
    def __init__(self,
                 appid: str = "",
                 key: str = "",
                 url: str = "https://fanyi-api.baidu.com/api/trans/vip/translate",
                 salt: str = "123"
                 ):
        self.__appid = appid  # 你的百度ID
        self.__key = key  # 你的密匙
        self.__url = url  # 百度翻译API链接
        self.__salt = salt  # 随机数字

    @property
    def appid(self):
        return self.__appid

    @appid.setter
    def appid(self, value: str):
        self.__appid = value

    @property
    def key(self):
        return self.__key

    @key.setter
    def key(self, value: str):
        self.__key = value

    @property
    def url(self):
        return self.__url

    @url.setter
    def url(self, value: str):
        self.__url = value

    @property
    def salt(self):
        return self.__salt

    @salt.setter
    def salt(self, value: str):
        self.__salt = value

Translater 类

class Translater:
    def __init__(self, config: APIConfig, from_lang: str, to_lang: str):
        self.__config = config  # API配置
        self.__from_lang = from_lang  # 原语言,可为auto
        self.__to_lang = to_lang  # 目标语言

    # 按百度API要求连接要加密的文本
    def __make_md5_text(self, query: str) -> str:
        return "{}{}{}{}".format(
            self.__config.appid,
            query,
            self.__config.salt,
            self.__config.key
        )

    # 按百度API要求进行MD5加密
    def __make_signture(self, query: str) -> str:
        md5 = hashlib.md5()
        md5.update(self.__make_md5_text(query).encode('utf-8'))
        return md5.hexdigest()

    # 发送post请求调用百度API
    def __post(self, query: str):
        headers = {
            "Content-Type": "application/x-www-form-urlencoded"
        }
        data = {
            "q": query,
            "from": self.__from_lang,
            "to": self.__to_lang,
            "appid": self.__config.appid,
            "salt": self.__config.salt,
            "sign": self.__make_signture(query)
        }
        try:
            response = requests.post(
                url=self.__config.url, headers=headers, data=data)
            return response
        except Exception as e:
            print(str(e))
            exit()

    # 用户接口
    def translate(self, query: str) -> list:
        result = self.__post(query).json()
        if "trans_result" in result:
            return result["trans_result"]
        else:
            print("错误信息:" + str(result))
            raise RuntimeError("百度翻译失败,请检验配置有效性")

到此这篇关于Python使用百度通用API进行翻译实现的文章就介绍到这了,更多相关Python 百度API翻译内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python爬取百度翻译实现中英互译功能

    目录 基础步骤 提交表单 获取响应并处理结果 消除警告 main.py sign.py 由于下学期报了一个Python的入门课程 所以寒假一直在自己摸索,毕竟到时候不能挂科,也是水水学分 最近心血来潮打算试试爬一下百度翻译 肝了一天终于搞出来了 话不多说,直接开搞(环境是Python 3.8 PyCharm Community Edition 2021.3.1) 基础步骤 百度翻译会识别到爬虫,所以得用headers隐藏一下 以chorme浏览器为例 在百度翻译页面点击鼠标右键,选择“检查”(或

  • python接入使用百度翻译流程

    目录 一.分析网页 二.使用步骤 1.导入库 2.键盘输入内容 3.构建url/headers/data参数 4.发起请求响应数据 5.解析数据输出结果 三.完整代码 一.分析网页 1. 打开网页,在搜索框输入百度翻译并进入百度翻译网站中.F12调出开发者工具,点击Network(网络)\ Fetch/XHR,同时在翻译框中任意输入搜索内容,此时就会发现有一个名称为sug的包.点击该包,点击后会看到有Heders.Payload.Preview和Rsponse等选项.点击Heders选项,将Re

  • Python结合百度语音识别实现实时翻译软件的实现

    一.所需库安装 pip install PyAudio pip install SpeechRecognition pip install baidu-aip pip install Wave pip install Wheel pip install Pyinstaller 二.百度官网申请服务 三.源代码分享 import pyaudio import wave from aip import AipSpeech import time # 用Pyaudio库录制音频 # out_file:

  • python爬虫之爬取百度翻译

    破解百度翻译 翻译是一件麻烦的事情,如果可以写一个爬虫程序直接爬取百度翻译的翻译结果就好了,可当我打开百度翻译的页面,输入要翻译的词时突然发现不管我要翻译什么,网址都没有任何变化,那么百度翻译要怎么爬取呢? 爬取百度翻译之前,我们先要明白百度翻译是怎么在不改变网址的情况下实现翻译的.百度做到这一点是用 AJAX 实现的,简单地说,AJAX的作用是在不重新加载网页的情况下进行局部的刷新. 了解了这一点,那么我们要怎么得到 AJAX 工作时请求的URL呢?老规矩,使用抓包工具. 爬虫步骤 在 "百度

  • python 爬虫如何实现百度翻译

    环境 python版本号 系统 游览器 python 3.7.2 win7 google chrome 关于本文 本文将会通过爬虫的方式实现简单的百度翻译.本文中的代码只供学习,不允许作为于商务作用.商务作用请前往api.fanyi.baidu.com购买付费的api.若有侵犯,立即删文! 实现思路 在网站文件中找到隐藏的免费api.传入api所需要的参数并对其发出请求.在返回的json结果里找到相应的翻译结果. 百度翻译的反爬机制 由js算法生成的sign cookie检测 token暗号 在

  • Python爬虫实现百度翻译功能过程详解

    首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写自己的一个小程序 打开浏览器 F12 打开百度翻译网页源代码: 我们可以轻松的找到百度翻译的请求接口为:http://fanyi.baidu.com/sug 然后我们可以从方法为POST的请求中找到参数为:kw:job(job是输入翻译的内容) 下面是代码部分: from urllib import request,parse import json def

  • Python如何通过百度翻译API实现翻译功能

    本人英语不好,很多词组不认识,只能借助工具:百度翻译和谷歌翻译都不错,近期自学Python,就想能否自己设计一个百度翻译软件呢? 百度翻译开放平台:http://api.fanyi.baidu.com/api/trans/product/index 百度翻译开放平台是百度翻译面向广大开发者提供开放服务的平台. 服务涵盖:通用翻译API.定制化翻译API.语音翻译SDK.拍照翻译SDK等,并持续更新中.自己用通用的即可. 通用翻译API采用全流程自助申请的模式.点击网站上方的"登录"按钮

  • Python使用百度通用API进行翻译实现

    想汉化StarUML这个软件,感觉工作量太大,想要用Python自动翻译. 结果网上找的一个个用不了,或者用一会儿就断. 于是自己手写了一个简单的,只有两个类:APIConfig和Translater 使用 demo my_api_config = APIConfig("12121123456789", "SFNFENRFNEFLWE") translater = Translater(my_api_config, from_lang="en",

  • python通过百度地图API获取某地址的经纬度详解

    前言 这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的,本文将给大家详细的介绍关于python通过百度地图API获取某地址的经纬度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 申请百度API 1.打开网页 http://lbsyun.baidu.com/index.php?title=首页 选择功能与服务中的地图,点击左边的获取密匙,然后按照要求申请即可,需要手机和百度账号

  • 利用python和百度地图API实现数据地图标注的方法

    如题,先上效果图: 主要分为两大步骤 使用python语句,通过百度地图API,对已知的地名抓取经纬度 使用百度地图API官网的html例程,修改数据部分,实现呈现效果 一.使用python语句,通过百度地图API,获取经纬度读取文件信息 import pandas as pd data = pd.read_excel('test_baidu.xlsx') data 图中可以看出,原始数据并没有经纬度. 2. 构建抓取经纬度函数 import json from urllib.request i

  • 对python借助百度云API对评论进行观点抽取的方法详解

    通过百度云API接口抽取得到产品评论的观点,也掠去了很多评论中无用的内容以及符号,为后续进行文本主题挖掘或者规则的提取提供基础. 工具 1.百度云账号,申请应用接口(自然语言处理) 2.python3.5 以下是百度接口提供的说明: 我们使用到的可选值是13,kindle属于3C产品. 下面是代码示例: from aip import AipNlp import csv import pandas as pd from pandas.core.frame import DataFrame "&q

  • python实现百度语音识别api

    本文实例为大家分享了ython实现百度语音识别的具体代码,供大家参考,具体内容如下 详细百度语音识别api文档 先下载python用SDK,可以用python setup.py install安装 # 引入Speech SDK from aip import AipSpeech # 定义常量 APP_ID = '你的 App ID' API_KEY = '你的 API Key' SECRET_KEY = '你的 Secret Key' # 初始化AipSpeech对象 aipSpeech = A

  • python调用百度语音识别api

    最近在处理语音检索相关的事. 其中用到语音识别,调用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用python) 环境: python3.5 centos 7 流程 整个百度语音识别rest api 使用分为三部分: 1 (申请操作)创建应用,获取应用的 API Key 以及 Secret Key. 2 (程序实现)通过已知的 应用的 API Key 以及 Secret Key, 发送post 请求到 https://openapi.baidu.com/oau

  • python调用百度REST API实现语音识别

    目前,语音识别,即将语音内容转换为文字的技术已经比较成熟,遥想当时锤子发布会上展示的讯飞输入法语音识别,着实让讯飞火了一把.由于此类语音识别需要采集大量的样本,才能达到一定的准确度,个人很难从零开始搭建.但是,许多拥有语音识别技术的公司,或多或少会提供一些API或者SDK供开发者使用,这样就把语音识别的门槛降到了一个很低的程度,只需几行代码即可实现.下面我介绍以下如何使用Python调用百度的REST API实现一个简单的语音识别. 注册账号,并成为开发者 打开 http://yuyin.bai

  • Python爬虫实例_利用百度地图API批量获取城市所有的POI点

    上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步: 1.设置请求参数(url,headers,cookies,post或get验证等)访问目标站点的服务器: 2.解析服务器返回的文档,提取需要的信息. 而API的工作机制与爬虫的两步类似,但也有些许不同: 1.API一般只需要设置url即可,且请求方式一般为"get"方式 2.API服务器返回的通常是json或xml格式的数据,解析更简

  • 用python实现百度翻译的示例代码

    用python实现百度翻译,分享给大家,具体如下: 首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写自己的一个小程序 打开浏览器 F12 打开百度翻译网页源代码: 我们可以轻松的找到百度翻译的请求接口为:http://fanyi.baidu.com/sug 然后我们可以从方法为POST的请求中找到参数为:kw:job(job是输入翻译的内容) 下面是代码部分: from urllib import req

  • Python使用百度翻译开发平台实现英文翻译为中文功能示例

    本文实例讲述了Python使用百度翻译开发平台实现英文翻译为中文功能.分享给大家供大家参考,具体如下: #coding=utf8 import random import requests import hashlib appid = 'xxxxxx' secretKey = 'xxxxx' def get_md5(string):#返回字符串md5加密 hl = hashlib.md5() hl.update(string.encode('utf-8')) return hl.hexdiges

随机推荐