百度免费翻译接口(基于python实现百度翻译功能)
类别:脚本大全 浏览量:1486
时间:2021-10-04 01:25:04 百度免费翻译接口
基于python实现百度翻译功能运行环境: python 3.6.0
今天处于练习的目的,就用 python 写了一个百度翻译,是如何做到的呢,其实呢就是拿到接口,通过这个接口去访问,不过中间确实是出现了点问题,不过都解决掉了
先晾图后晾代码
运行结果:
代码:
|
# -*- coding: utf-8 -*- """ 功能:百度翻译 注意事项:中英文自动切换 """ import requests import re class baidu_translate( object ): def __init__( self , query_string): self .query_string = query_string self .url_1 = 'https://fanyi.baidu.com/sug' # self.url = 'https://fanyi.baidu.com/v2transapi' # 这里不能用这个地址,因为对方采用了反爬虫措施,访问这个地址是人家是不会给你任何数据的 self .url_0 = 'https://fanyi.baidu.com/transapi' self .zh_pattern = re. compile ( '[\u4e00-\u9fa5]+' ) self .headers = { 'accept' : '* / *' , 'accept - encoding' : 'gzip, deflate' , 'accept - language' : 'zh-cn, zh; q=0.9' , 'connection' : 'keep - alive' , 'content-type' : 'application/x-www-form-urlencoded; charset=utf-8' , 'user-agent' : 'mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/72.0.3626.121 safari/537.36' , 'x-requested-with' : 'xmlhttprequest' , } def get_post_data( self ): """ 拿到 post 请求上传的参数,并判断输入类型并予以返回 :return: 查询词 """ if re.search(pattern = self .zh_pattern, string = self .query_string): # 输入的内容含有中文,则判别其为中文输入 return { "from" : "zh" , "to" : "en" , "kw" : self .query_string, # 模糊查询 url_1关键词 "query" : self .query_string, # 精准查询 url_0关键词 } else : return { "from" : "en" , "to" : "zh" , "kw" : self .query_string, # 模糊查询 url_1关键词 "query" : self .query_string, # 精准查询 url_0关键词 } def request_translate( self ): """ 向百度请求 json 数据 :return: 向百度请求的 json 数据 """ data = self .get_post_data() try : response_0 = requests.request(method = "post" , url = self .url_0, headers = self .headers, data = data).json() except exception: # 进行数据请求的任何异常处理 response_0 = '' try : response_1 = requests.request(method = "post" , url = self .url_1, headers = self .headers, data = data).json() except exception: # 进行数据请求的任何异常处理 response_1 = '' return response_0, response_1 def parse_translate_data( self ): """ 数据解析,将请求到的翻译内容解析并输出 :return: none """ response_0 = self .request_translate()[ 0 ] response_1 = self .request_translate()[ 1 ] # item = response_0 if response_0: item = response_0.get( 'data' )[ 0 ].get( 'dst' ) print ( 'key word:' , self .query_string, '\t' , 'translate:' , item) if response_1: data = response_1.get( 'data' ) print () for item in data[: 1 ]: # 长度一般为5,这里只保留其释义 print ( 'key word: \t[ {key} ]' . format (key = item.get( 'k' ))) print ( 'value: \t\t[ {value} ]' . format (value = item.get( 'v' ))) print () # print(response_1.get('data')) def main(): """ 主函数 :return: none """ while true: try : query_keywords = input ( """请输入您要翻译的内容 [ 输入四个'0'退出 ] : """ ) if query_keywords = = "0000" : # 如果输入四个 '0',退出小程序 print ( '########## 您已成功退出百度翻译 ##########' ) break else : baidu = baidu_translate(query_string = query_keywords) baidu.parse_translate_data() except exception as e: print ( '请求出错,请重试' , e.args) if __name__ = = '__main__' : main() |
总结
以上所述是小编给大家介绍的基于python实现百度翻译功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
原文链接:https://blog.csdn.net/qq_39377418/article/details/89816398
您可能感兴趣
- pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)
- python怎样看字符unicode编码(Python3中编码与解码之Unicode与bytes的讲解)
- 如何学会python多线程(Python3多线程基础知识点)
- python递归深度遍历多叉树(Python实现二叉树的常见遍历操作总结7种方法)
- python 文本文件读取方法(Python逐行读取文件中内容的简单方法)
- python弹跳小球(python实现弹跳小球)
- python 提取微信消息(python实现文件助手中查看微信撤回消息)
- python详细讲解类方法的使用(浅谈python标准库--functools.partial)
- python四舍五入怎么用(python3 小数位的四舍五入用两种方法解决round 遇5不进)
- python面向对象实例教程(Python面向对象程序设计类的多态用法详解)
- python电脑自动发送邮件(python学习--使用QQ邮箱发送邮件代码实例)
- 用python画圣诞树送给女朋友(情人节快乐! python绘制漂亮玫瑰花)
- pythonpickle使用方法(Python supervisor强大的进程管理工具的使用)
- python变量与对象的关系(Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析)
- python中encode中文自定义编码(详解Python解决抓取内容乱码问题decode和encode解码)
- python能操作微信定时发消息(python给微信好友定时推送消息的示例)
- 阴生环境 耐阴地被植物,你知道哪些(阴生环境耐阴地被植物)
- 常见的喜阴植物有哪些 养室内盆栽就在这里选(常见的喜阴植物有哪些)
- 这8种耐阴植物,营造阴生植物花境,也是一个不错的选择(营造阴生植物花境)
- 览邦G08 Plus SMART WATCH 测评⑱ 全独立这才是智能手表该有的样子(览邦G08PlusSMART)
- 荣耀手表 GS 3 真机亮相 不支持无线充电(荣耀手表GS3)
- 通过体温就能为智能手表充电 原来是用NASA在空间站用的黑科技(通过体温就能为智能手表充电)
热门推荐
- dedecms制作的网站如何发布(DedeCms后台添加编辑文章空白的解决方法)
- python将字符串转换为时间格式(Python时间和字符串转换操作实例分析)
- SQL Server与Oracle数据类型的对应关系
- docker里面安装redis(Docker上实现Redis集群搭建)
- canvas画布多次渲染失败(深入了解canvas在移动端绘制模糊的问题解决)
- html5带放大镜的搜索代码(html5借用repeating-linear-gradient实现一把刻度尺ruler)
- phpstudy8.0使用教程视频(phpstudy v8.1 Apache伪静态配置图文教程)
- 服务器怎么创建网站(网站如何选择服务器空间?)
- js使用递归解析(关于JavaScript递归经典案例题详析)
- mongodb distinct去重
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9