鱼C论坛

 找回密码
 立即注册
查看: 2644|回复: 1

[技术交流] Python 爬取百度翻译

[复制链接]
发表于 2020-3-18 13:20:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python 爬取百度翻译


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

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

1.png

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

然后使用以下函数:

  1. from random import randint
  2. from hashlib import md5
  3. from urllib.parse import quote
  4. from requests import get
  5. from json import loads


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

  9.     参数
  10.     ----------
  11.     text: str
  12.         待翻译的文本
  13.     app_id: str
  14.         App id
  15.     secret_key: str
  16.         Secret key
  17.     from_: str
  18.         待翻译文本的语言
  19.     to: str
  20.         翻译成的语言

  21.     返回值
  22.     -------
  23.     翻译后的文本,如果出错则返回空字符串
  24.     """
  25.     try:
  26.         salt = str(randint(32768, 65536))
  27.         sign = md5((app_id + text + salt + secret_key).encode()).hexdigest()
  28.         content = get('http://api.fanyi.baidu.com/api/trans/vip/translate' + '?appid=' + app_id +
  29.                       '&q=' + quote(text) + '&from=' + from_ + '&to=' + to + '&salt=' + str(salt) +
  30.                       '&sign=' + sign).content.decode()
  31.         data = loads(content)
  32.         list1 = data['trans_result']
  33.         res = []
  34.         for i in list1:
  35.             res.append(i["dst"])
  36.         return '\n'.join(res)
  37.     except Exception:    # 出错时返回空字符串
  38.         return ''
复制代码


例如:

  1. print(baidu_translate("你好\n我叫 zltzlt", "你的 App ID", "你的 Secret Key"))
复制代码


结果:

  1. Hello
  2. My name is zltzlt
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-21 13:51:12 | 显示全部楼层
这一定是一个好宝贝……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 12:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表