鱼C论坛

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

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

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

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

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

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

class  baidufy(object):
    def __init__(self):
        self._from="zh"
        self._to="en"
        self._word="test"
        self._url="https://fanyi.baidu.com/v2transapi?from=en&to=zh"
        self._headers={
                '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' ,
                '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',
            }
        
    def getsign(self):
        with open("baidufanyi.js","r",encoding="utf8") as f:
            jscode=f.read()
        return execjs.compile(jscode).call("get_sign",self._word) 
    def setfrom(self,f):
        self._from=f
    def setto(self,f):
        self._to=f   
    def setword(self,f):
        self._word=f   
    def getres(self):
        data={
                'from': self._from,
                'to': self._to,
                'query':self._word,
                'transtype': 'enter',
                'simple_means_flag': 3,
                'sign': self.getsign(),
                'token': '051d57076542d98fc5fad9a6d1baf2e8',
                'domain': 'common'
            }
        return  requests.post(url=self._url,headers=self._headers,data=data)

fy=baidufy()
fy.setword("猫狗大战")
fy.setfrom("zh")
fy.setto("en")
res=fy.getres()
print(res.json()["trans_result"]["data"][0]["dst"])  
fy.setword("recent")
fy.setfrom("en")
fy.setto("zh")
res=fy.getres()
print(res.json()["trans_result"]["data"][0]["dst"])   
fy.setword("this is a test text")
res=fy.getres()
print(res.json()["trans_result"]["data"][0]["dst"])   
fy.setword("我们伟大的祖国")
fy.setfrom("zh")
fy.setto("en")
res=fy.getres()
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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-5 23:59:33 From FishC Mobile | 显示全部楼层
先占个好位置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 09:06:46 | 显示全部楼层
应该有baidufanyi.js没发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这东西发出来也未必有用,没准哪天百度又改版了,还得重新分析
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 10:22:03 | 显示全部楼层
加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

稀客啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 12:01:42 From FishC Mobile | 显示全部楼层
固定的token,看你能运行几天
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

这玩意就在百度的控制台能用,其他网页没这个变量,所以没有继续深入研究
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-6 21:34:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 12:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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