基于python实现百度翻译功能

作者:TianChuang335 时间:2023-09-06 15:14:18 

运行环境: python 3.6.0

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

先晾图后晾代码

运行结果:

基于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

标签:python,百度,翻译
0
投稿

猜你喜欢

  • 如何在社区建立一个寻呼台?

    2009-11-08 18:59:00
  • 浅谈MySQL与redis缓存的同步方案

    2024-01-13 23:44:58
  • 对Python3+gdal 读取tiff格式数据的实例讲解

    2023-03-10 10:21:53
  • PHP设计模式之中介者模式浅析

    2023-05-25 04:07:16
  • Python中如何向函数传递列表

    2022-09-23 19:10:23
  • laravel添加前台跳转成功页面示例

    2023-11-20 15:22:18
  • Python Pillow Image.save 保存为jpg图片压缩问题

    2023-07-05 11:13:49
  • 对Python中DataFrame按照行遍历的方法

    2023-01-03 23:08:59
  • python自动化实现登录获取图片验证码功能

    2022-09-21 13:23:59
  • JS操作input标签属性checkbox全选的实现代码

    2024-04-28 09:50:56
  • CentOS7使用yum安装Golang的超详细步骤

    2024-04-30 10:08:01
  • MySQL sql_mode修改不生效的原因及解决

    2024-01-25 03:32:48
  • 新手入门:防范SQL注入攻击的新办法

    2009-03-11 15:14:00
  • mysql 5.7.21 解压版安装配置方法图文教程

    2024-01-13 23:26:01
  • mac下如何将python2.7改为python3

    2023-12-07 17:14:43
  • Tornado高并发处理方法实例代码

    2022-10-13 15:30:07
  • ipad上运行python的方法步骤

    2021-12-06 19:05:36
  • 基于Python实现主机远程控制

    2023-11-24 17:27:31
  • 详解vue-router 2.0 常用基础知识点之router.push()

    2024-04-09 10:49:35
  • 基于Jquery+Ajax+Json的高效分页实现代码

    2024-05-21 10:12:19
  • asp之家 网络编程 m.aspxhome.com