zltzlt 发表于 2020-3-18 13:20:59

Python 爬取百度翻译

Python 爬取百度翻译

先在这里注册一个通用翻译 API :

http://api.fanyi.baidu.com/product/11



可选择标准版或高级版(高级版需实名认证才能用,而且高级版每月只能免费翻译 200 万字符)

然后使用以下函数:

from random import randint
from hashlib import md5
from urllib.parse import quote
from requests import get
from json import loads


def baidu_translate(text: str, app_id: str, secret_key: str, from_: str = 'zh', to: str = 'en') -> str:
    """
    爬取百度翻译

    参数
    ----------
    text: str
      待翻译的文本
    app_id: str
      App id
    secret_key: str
      Secret key
    from_: str
      待翻译文本的语言
    to: str
      翻译成的语言

    返回值
    -------
    翻译后的文本,如果出错则返回空字符串
    """
    try:
      salt = str(randint(32768, 65536))
      sign = md5((app_id + text + salt + secret_key).encode()).hexdigest()
      content = get('http://api.fanyi.baidu.com/api/trans/vip/translate' + '?appid=' + app_id +
                      '&q=' + quote(text) + '&from=' + from_ + '&to=' + to + '&salt=' + str(salt) +
                      '&sign=' + sign).content.decode()
      data = loads(content)
      list1 = data['trans_result']
      res = []
      for i in list1:
            res.append(i["dst"])
      return '\n'.join(res)
    except Exception:    # 出错时返回空字符串
      return ''

例如:

print(baidu_translate("你好\n我叫 zltzlt", "你的 App ID", "你的 Secret Key"))

结果:

Hello
My name is zltzlt

juhugufudu 发表于 2020-3-21 13:51:12

这一定是一个好宝贝……{:10_256:}
页: [1]
查看完整版本: Python 爬取百度翻译