侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

基于python实现百度翻译功能

Python  /  管理员 发布于 7年前   155

运行环境: python 3.6.0

今天处于练习的目的,就用 python 写了一个百度翻译,是如何做到的呢,其实呢就是拿到接口,通过这个接口去访问,不过中间确实是出现了点问题,不过都解决掉了

先晾图后晾代码

运行结果:

代码:

# -*- coding: utf-8 -*-"""功能:百度翻译注意事项:中英文自动切换"""import requestsimport reclass 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实现百度翻译功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


  • 上一条:
    python实现小球弹跳效果
    下一条:
    python使用time、datetime返回工作日列表实例代码
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客