百度翻译返回997错误,经过分析查询网络其他博客的示例,解决方法:如何计算sign

import requests

import execjs

import json

class MobileBaiduTranslate:

def __init__(self):

self.url = "https://fanyi.baidu.com/basetrans"

self.headers = {

"Cookie": "找到你自己的COOKIE",

"User-Agent": "找到你移动端的ua",

}

self.data = {

"from": "zh",

"to": "en",

"query": None,

"sign": None,

"token": "找到你自己的token"

}

def get_baidu_sign(self):

with open("baidusign.js") as f:

jsData = f.read()

sign = execjs.compile(jsData).call("a", self.input)

return sign

def run(self):

self.input = input("请输入要翻译的内容:")

self.get_baidu_sign()

self.data["query"] = self.input

self.data["sign"] = self.get_baidu_sign()

print(self.data)

response = requests.post(url=self.url, data=self.data, headers=self.headers)

#中文输出

# print(response.content.decode('unicode-escape'))

self.result_strs = response.content.decode()

def get_translate_result(self):

result_dict = json.loads(self.result_strs)

if 'trans' in result_dict:

result = result_dict['trans'][0]['dst'] if len( result_dict['trans']) > 0 else None

print("翻译结果为:")

print(result)

else:

print("请输入内容再进行翻译")

if __name__ == '__main__':

while True:

baidutranlate = BaiDuTranslateWeb()

baidutranlate.run()

baidutranlate.get_translate_result()

baidusign.js

var i = "320305.131321201"

function n(r, o) {

for (var t = 0; t < o.length - 2; t += 3) {

var a = o.charAt(t + 2);

a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a), a = "+" === o.charAt(t + 1) ? r >>> a : r << a, r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a

}

return r

}

function a(r) {

var t = r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);

if (null === t) {

var a = r.length;

a > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(a / 2) - 5, 10) + r.substr(-10, 10))

} else {

for (var C = r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), h = 0, f = C.length, u = []; f > h; h++) "" !== C[h] && u.push.apply(u, e(C[h].split(""))), h !== f - 1 && u.push(t[h]);

var g = u.length;

g > 30 && (r = u.slice(0, 10).join("") + u.slice(Math.floor(g / 2) - 5, Math.floor(g / 2) + 5).join("") + u.slice(-10).join(""))

}

var l = void 0, d = "" + String.fromCharCode(103) + String.fromCharCode(116) + String.fromCharCode(107);

l = null !== i ? i : (i = o.common[d] || "") || "";

for (var m = l.split("."), S = Number(m[0]) || 0, s = Number(m[1]) || 0, c = [], v = 0, F = 0; F < r.length; F++) {

var p = r.charCodeAt(F);

128 > p ? c[v++] = p : (2048 > p ? c[v++] = p >> 6 | 192 : (55296 === (64512 & p) && F + 1 < r.length && 56320 === (64512 & r.charCodeAt(F + 1)) ? (p = 65536 + ((1023 & p) << 10) + (1023 & r.charCodeAt(++F)), c[v++] = p >> 18 | 240, c[v++] = p >> 12 & 63 | 128) : c[v++] = p >> 12 | 224, c[v++] = p >> 6 & 63 | 128), c[v++] = 63 & p | 128)

}

for (var w = S, A = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(97) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(54)), b = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(51) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(98)) + ("" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(102)), D = 0; D < c.length; D++) w += c[D], w = n(w, A);

return w = n(w, b), w ^= s, 0 > w && (w = (2147483647 & w) + 2147483648), w %= 1e6, w.toString() + "." + (w ^ S)

}

python百度翻译包_python百度翻译移动端相关推荐

  1. python语音翻译软件下载_python软件翻译

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在学习requests请求的时候做过类似的demo,给百度翻译发送一个post请 ...

  2. python 时间序列突变检测_Python 百度指数突变点检测

    百度指数是一款非常好用的工具,通过它我们能知道某些关键词在过去的一些日子里的热度变化趋势并能够对这些数据进行分析.如果能用得好百度指数,我们将能产出巨大的价值.你可以通过关注文章下方的Python实用 ...

  3. python如何更新包_python如何更新包 python更新包代码示例

    python如何更新包?本篇文章小编给大家分享一下python更新包代码示例,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Python安装新包,pip是 ...

  4. python镜像下载包_python包详解

    干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...

  5. python使用pkg包_Python deb-pkg-tools包_程序模块 - PyPI - Python中文网

    python包deb-pkg-tools是要构建和 检查Debian binary packages和二进制包的存储库.它的 主要用例是自动化构建. 一些功能在命令行界面中公开(如下所述) 因为在sh ...

  6. python脚本常见包_python之各种包

    python之各种包 因为需要解决不同的需求,所以,python准备了丰富的模块.只要导入就可以使用,简洁高效. collection模块 具名元组(namedtuple),可以给指定位置传参,一一赋 ...

  7. python 导入第三方包_python 导入第三方包---

    python导入第三方包的方法: 最重要的四件事: 1 import sys sys.path.append("..") 2要引入的包所在文件添加:__init__.py 3 fr ...

  8. python如何更新包_python如何更新包

    Python安装新包,pip是很好用的安装工具. pip list 可以查询所有已安装的包和版本.怎么知道本地安装包的版本是否有可以更新的新版本呢?通过pip list函数可以实现.具体实现方式如下: ...

  9. python序列解包_python中解包

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 序列解包(sequence unpacking)是python中非常重要和常用的 ...

最新文章

  1. Maven本地缓存清理小工具
  2. JavaScript 要点(十四)HTML DOM 元素(节点)
  3. 信息系统项目管理师-信息系统进度管理核心知识点思维脑图
  4. Inspector a ProgressBar(定制属性面板)
  5. ESP32-C3的性价比到底有多高!乐鑫的布局到底是什么呢?
  6. linux中rev命令详解,详解Linux中输出文件内容的rev与tac命令使用
  7. php通用的树型类创建无限级树型菜单
  8. 此时本机的BootLoader程序坏了,也就是说grub第一阶段坏掉了,该如何修复
  9. UIKit基础:17-基础控件的总结
  10. 小学生计算机课程设计,小学版3D建模课程设计
  11. 斑马打印机设置成网络打印机步骤
  12. 微信消息接口发送信息到分组和用户,错误代码40003和40008
  13. python实现12306抢票,春节不用担心买不到票回家了
  14. 帅爆! 赛博朋克特效实现
  15. 无盘系统服务器虚拟内存,Windows7无盘虚拟内存如何设置
  16. 奈奎斯特采样定理—以二维图像为例
  17. aws 邮件服务器 接收邮件,Amazon SES
  18. HATEOAS HAL
  19. starCTF2019-oob
  20. 国产FPGA芯片,机遇与挑战并存

热门文章

  1. 腾讯电脑管家13内测版官方下载地址
  2. python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]
  3. openocd for windows
  4. gdb set写text/code段错误的解决办法
  5. 什么叫pmt测试分析_直读分析光谱仪核心配件
  6. 记事本保存的内容被覆盖_记事本的妙用——双击记事本即可关机
  7. css中属性兼容性写法,CSS3兼容属性和标准属性的书写顺序
  8. 计算机程序中断方式有几种,奥鹏离线作业计算机组成原理一、简答题1、请说明程序查询方式与中断方式各自的特点.2、提高存储器速度可采用哪些措施,请说出...
  9. php对手时间戳判断,PHP 中判断一个数字是否是Unix 时间戳
  10. 需要正则化的一个判断