鱼C论坛

 找回密码
 立即注册
查看: 3093|回复: 8

[技术交流] 备战---百度翻译

[复制链接]
发表于 2021-6-5 20:37:35 | 显示全部楼层 |阅读模式

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

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

x
话说有道翻译都被你们玩坏了,不说有后门(去掉那个下划线)   即使是逆向有道   据大佬们说  也是狠easy的  
今天我们来一个稍稍比有道难些的   它就是百度翻译
  1. import requests
  2. import execjs

  3. class  baidufy(object):
  4.     def __init__(self):
  5.         self._from="zh"
  6.         self._to="en"
  7.         self._word="test"
  8.         self._url="https://fanyi.baidu.com/v2transapi?from=en&to=zh"
  9.         self._headers={
  10.                 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36' ,
  11.                 'Cookie': 'BAIDUID=C7638744D857E9E04845B17AF533C51F:FG=1; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1622890608; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1622890608; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; __yjs_duid=1_dd39d74ec48d01dbbc90d80a1ac368091622890604663',
  12.             }
  13.         
  14.     def getsign(self):
  15.         with open("baidufanyi.js","r",encoding="utf8") as f:
  16.             jscode=f.read()
  17.         return execjs.compile(jscode).call("get_sign",self._word)
  18.     def setfrom(self,f):
  19.         self._from=f
  20.     def setto(self,f):
  21.         self._to=f   
  22.     def setword(self,f):
  23.         self._word=f   
  24.     def getres(self):
  25.         data={
  26.                 'from': self._from,
  27.                 'to': self._to,
  28.                 'query':self._word,
  29.                 'transtype': 'enter',
  30.                 'simple_means_flag': 3,
  31.                 'sign': self.getsign(),
  32.                 'token': '051d57076542d98fc5fad9a6d1baf2e8',
  33.                 'domain': 'common'
  34.             }
  35.         return  requests.post(url=self._url,headers=self._headers,data=data)

  36. fy=baidufy()
  37. fy.setword("猫狗大战")
  38. fy.setfrom("zh")
  39. fy.setto("en")
  40. res=fy.getres()
  41. print(res.json()["trans_result"]["data"][0]["dst"])  
  42. fy.setword("recent")
  43. fy.setfrom("en")
  44. fy.setto("zh")
  45. res=fy.getres()
  46. print(res.json()["trans_result"]["data"][0]["dst"])   
  47. fy.setword("this is a test text")
  48. res=fy.getres()
  49. print(res.json()["trans_result"]["data"][0]["dst"])   
  50. fy.setword("我们伟大的祖国")
  51. fy.setfrom("zh")
  52. fy.setto("en")
  53. res=fy.getres()
  54. print(res.json()["trans_result"]["data"][0]["dst"])   


复制代码


测试样本:
PS E:\wp> py test4.py

Cat and dog battle
最近的
这是一个测试文本
Our great motherland


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

使用道具 举报

发表于 2021-6-5 23:59:33 From FishC Mobile | 显示全部楼层
先占个好位置
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 09:06:46 | 显示全部楼层
应该有baidufanyi.js没发
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-6 09:18:55 From FishC Mobile | 显示全部楼层
南归 发表于 2021-6-6 09:06
应该有baidufanyi.js没发

这东西发出来也未必有用,没准哪天百度又改版了,还得重新分析
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 10:22:03 | 显示全部楼层
加油
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-6 10:26:25 From FishC Mobile | 显示全部楼层
不二如是 发表于 2021-6-6 10:22
加油

稀客啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 12:01:42 From FishC Mobile | 显示全部楼层
固定的token,看你能运行几天
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-6 12:18:36 | 显示全部楼层
kaohsing 发表于 2021-6-6 12:01
固定的token,看你能运行几天

那个token是用window.common.token获取的

这玩意就在百度的控制台能用,其他网页没这个变量,所以没有继续深入研究
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 21:34:07 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 01:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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