代码在后面
思路1总结 抓包找到这四个加密参数
‘salt’: salt,
‘sign’: sign,
‘ts’: ts,
‘bv’: bv,
得到四个值(涉及到js中 MD5, 时间戳。 随机数等)
携带这四个值去发送请请求, 携带cookies referer User-Agent

     var r = function(e) {var t = n.md5(navigator.appVersion), r = "" + (new Date).getTime(), i = r + parseInt(10 * Math.random(), 10);return {ts: r,bv: t,salt: i,sign: n.md5("fanyideskweb" + e + i + "n%A-rKaT5fb[Gy?;N5@Tj")}
};

分析可知salt 是i, 而i是 r + 一个(0,9)的随机数, r 是时间戳
ts 是 r 时间戳

navigator.appVersion 是User-Agent
断点可以看得出来e 是传的参数 i=‘hello’ 要翻译的内容

思路2总结: 用execjs执行js文件

import execjs
with open(‘youdao.js’, ‘r’, encoding=‘utf-8’) as r:
js = r.read()

js = execjs.compile(js)
result = js.call(‘function’, ‘apple’)
print(result)

代码

import json
import random
import time
import hashlib
import requestsheaders = {'Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Content-Length': '255','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Cookie': 'JSESSIONID=abcaVFNZrEtSV583CqbZw; _ntes_nnid=6927f0d06e9bbabddaa221862ff48a3c,1566610413099; OUTFOX_SEARCH_USER_ID_NCOO=1609575443.4062839; OUTFOX_SEARCH_USER_ID=-1288002478@1.202.251.26; ___rl__test__cookies=1566611355038','Host': 'fanyi.youdao.com','Origin': 'http://fanyi.youdao.com','Referer': 'http://fanyi.youdao.com/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36','X-Requested-With': 'XMLHttpRequest',
}# 破解salt ts signdef make_md5(string):"""md5加密"""string = string.encode("utf-8")md5 = hashlib.md5(string).hexdigest()return md5def get_content(e):ts = str(int(time.time() * 1000))salt = ts + str(random.randint(0, 9))  # 1566613520.000589      # 15666113550427ua = "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"bv = make_md5(ua)# sign = "fanyideskweb" + e + i + "n%A-rKaT5fb[Gy?;N5@Tj"  # i 是saltsign = "fanyideskweb" + e + salt + "n%A-rKaT5fb[Gy?;N5@Tj"sign = make_md5(sign)# print(salt)url = "http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"data = {'i': e,'from': 'AUTO','to': 'AUTO','smartresult': 'dict','client': 'fanyideskweb','salt': salt,'sign': sign,'ts': ts,'bv': bv,'doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_CLICKBUTTION',}# print(data)response = requests.post(url=url, headers=headers, data=data).textreturn responsedef handle_content(result):"""规范化处理:return:"""# print(result)result = json.loads(result)print(result["translateResult"][0][0]["tgt"])def main():while 1:input_content = input("请输入要翻译的内容:")result = get_content(input_content)handle_content(result)if __name__ == '__main__':main()

由于时间比较紧,就先给大家分享一种方法,有时间我会继续完成第二种方法代码与大家分享。

python爬虫 破解js加密有道词典案列的两种方式以及思路总结相关推荐

  1. 反爬虫 破解js加密-有道翻译

    js 加密 有的反爬虫策略采用js对需要传输的数据进行加密处理(通常是取md5值) 经过加密,传输的就是密文,但是加密函数或者过程一定是在浏览器完成,也就是一定会把代码(js代码)暴露给使用者 通过阅 ...

  2. python爬虫--破解js加密:kankan登录破解

    这一系列文章旨在解决python 爬虫过程中遇到的各种反爬,从简单到复制,是个进阶的过程.如果对你有帮助,欢迎关注. 今天要破解的网站是天天看看(http://www.kankan.com/)的登录, ...

  3. python爬虫破解字体加密案例

    python爬虫破解字体加密案例 本次案例以爬取起小点小说为例 案例目的: 通过爬取起小点小说月票榜的名称和月票数,介绍如何破解字体加密的反爬,将加密的数据转化成明文数据. 程序功能: 输入要爬取的页 ...

  4. ajax加载vue数据,详解使用Vue.Js结合Jquery Ajax加载数据的两种方式

    整理文档,搜刮出一个使用vue.js结合jquery ajax加载数据的两种方式的代码,稍微整理精简一下做下分享. 废话不多说,直接上代码 html代码 demo {{message }} 测试jqu ...

  5. 爬虫破解js加密破解(二) 有道词典js加密参数 sign破解

    在爬虫过程中,经常给服务器造成压力(比如耗尽CPU,内存,带宽等),为了减少不必要的访问(比如爬虫),网页开发者就发明了反爬虫技术. 常见的反爬虫技术有封ip,user_agent,字体库,js加密, ...

  6. 当Python爬虫遇到JS加密

    我们在做python爬虫的时候经常会遇到许多的反爬措施,js加密就是其中一种. 破解js加密的方法也有很多种: 1.直接驱动浏览器抓取数据,无视js加密. 2.找到本地加密的js代码,使用python ...

  7. js操作元素:改变元素内容有两种方式: interText 和 innerHTML的区别, 常用的元素的属性操作, 仿电脑系统时间问好 ,表单元素的属性操作 ,案例:仿京东显示隐藏密码 ,样式属性操作

    文章目录 操作元素 改变元素内容有两种方式: interText 和 innerHTML的区别 常用的元素的属性操作 案例:仿电脑系统时间问好 表单元素的属性操作 案例:仿京东显示隐藏密码 样式属性操 ...

  8. Python爬虫之js加密破解,抓取网易云音乐评论生成词云

    js破解历程 前言 技能点 界面概况 静态网页动态网页 页面解析 step1: 找参数step2:分析js函数step3:分析参数step4: 校验step5:转为python代码 编写爬虫 很多人学 ...

  9. python爬虫处理js混淆加密_Python爬虫—破解JS加密的Cookie

    專 欄 ❈Jerry,Python中文社区专栏作者. blog:https://my.oschina.net/jhao104/blog github:https://github.com/jhao10 ...

最新文章

  1. Android 哥哥福利
  2. ElementUI中el-table双击单元格事件并获取指定列的值和弹窗显示详细信息
  3. 怎么钢枪_这样玩《和平精英》有手就能上皇冠?教你玩吃鸡怎么涨KD
  4. JNDI(datasource)在tomcat,JBOSS下的spring+quartz配置
  5. PP视频如何开启允许非WI-FI下载
  6. maven安装与创建多模块项目【转】
  7. CNN图像分类Keras代码转换pytorch思路与实现
  8. 杨强教授领衔力作,《迁移学习》最新出炉,解决AI“最后一公里”问题 | 赠书...
  9. nyoj 56 阶乘中素数的个数
  10. 回溯算法讲解--适用于leetcode绝大多数回溯题目
  11. C语言实例第9期:提取字符串中全部数字
  12. Xilinx SDK 初学之–API函数笔记(AXI_GPIO)
  13. 韩顺平 php大牛班课程,2016 泰牛程序员 韩顺平 PHP 大牛班 javascript课程 完整笔记.doc...
  14. 巅峰战舰服务器维护,《巅峰战舰》8月5日更新公告
  15. 整理一下国内比较便宜的云主机
  16. hive的distribute by应用
  17. 硬件设计22之高速电路设计保险丝的选型
  18. word2010去掉回车符
  19. INF443 Amphi 1
  20. SQL基础条件查询语句

热门文章

  1. youtube爬虫搭建
  2. java 时区-东八区
  3. 如何与新同事共同成长?
  4. NPDP产品经理证书(2019年04月),NPDP是IBM和华为的IPD的祖师爷。IPD学不到,NPDP还是可以学到的。...
  5. Day25|组合板子|216. 组合总和 III| 17. 电话号码的字母组合
  6. 头条限流是什么原因_头条号跨领域了,限流了,怎么补救!
  7. c语言日历时钟编程,基于DS1302的日历时钟(1602液晶显示DS1302时钟)C语言程序设计...
  8. 使用RecyclerView实现瀑布流
  9. 《神的孩子全跳舞》感
  10. Linux 小程序开发日记(终章)(pyqt+yolov5)