中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于python實現百度翻譯功能

發布時間:2020-08-30 18:29:00 來源:腳本之家 閱讀:301 作者:TianChuang335 欄目:開發技術

運行環境: 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實現百度翻譯功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

资讯| 芜湖市| 繁峙县| 磐安县| 榆林市| 镶黄旗| 耒阳市| 柳州市| 武功县| 鹤庆县| 哈密市| 五峰| 敦煌市| 铜梁县| 营山县| 利川市| 邹城市| 金阳县| 焦作市| 正蓝旗| 武定县| 含山县| 峨边| 武平县| 红河县| 柘城县| 阜康市| 德州市| 青海省| 明溪县| 泸西县| 天气| 翁源县| 米易县| 嵩明县| 平泉县| 宁国市| 兴文县| 蓝山县| 永顺县| 确山县|