1、环境搭建

通过python代码模拟js去生成加密数据完成数据破解,需要用到PyExecJS模块
①安装模块pip install pyexecjs通过模块的方法来读取js代码,也可以用js2py(不更新维护了)、selenium(driver.wxecute_script(js代码))去执行js文件,这里以pyexecjs为例
②python调用js代码的时候需要nodejs的环境(安装步骤如下)
nodejs下载地址:点解对应版本下载,我选择64位msi

选择msi它可以自动配置环境变量,不用手动配置环境变量,选择zip需要先解压,后手动配置path环境变量(增加nodejs配置)

无脑next按照默认选项操作,直到finish,通过命令行来验证是否成功安装,按ctrl+c退出node交互模式

③写一个js文件通过python来读取它的数据初步进入js逆向的学习

2、浏览器知识点补充

浏览器抓包工具在什么是爬虫中有过介绍,这里再补充一点常用小技巧,框中的代表保留日志信息,比如一些ajax请求,如果不勾选它,一旦页面刷新,那么他不会保留之前的信息,不利于爬取数据查看api信息

键盘按住shift鼠标悬停再对应的文件之上,可以查看到他们之间对应的层级依赖关系会以颜色显示

3、哈希类JS加密(一般处理登录过程中的加密)

3.1MD5:模拟登录一品威客

先找到加密的数据是哪些数据再通过search搜索加密文件是再那个js文件里面,然后通过断点调试找到数据加密的方法,将js文件复制进入pycharm,通过excejs引入js进行解密破解该加密数据,进行模拟登录。


3.2有道词典

有道词典也是一个post请求,通过对比翻译两个不同单词form_data表单携带不同的数据来比较出哪些数据是变化的比较发现i、salt、sign、its发生变化,下图没有写全,自己比较,将不同的加密参数模拟出来传入通过requests获得结果,js代码自己去分析,或者私聊我,py代码我放下面

from day01 import get_js_function
import requests
dic = get_js_function('youdao.js', 'youdao', 'ordinary')
dic['i'] = 'ordinary'
dic['from'] = 'AUTO'
dic['to'] = 'AUTO'
dic['smartresult'] = 'dict'
dic['client'] = 'fanyideskweb'
dic['doctype'] = 'json'
dic['version'] = '2.1'
dic['keyfrom'] = 'fanyi.web'
dic['action'] = 'FY_BY_CLICKBUTTION'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36','Referer': 'http://fanyi.youdao.com/','Host': 'fanyi.youdao.com','Cookie': 'OUTFOX_SEARCH_USER_ID=-1063838233@10.169.0.82; JSESSIONID=aaa6LVCQlOvoh7aoDIXux; OUTFOX_SEARCH_USER_ID_NCOO=518038871.14423877; ___rl__test__cookies=1602854040845'
}
r = requests.post('http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule', data=dic, headers=header)
print(r.json())

3.3模拟登录唯品会

通过分析发现它的密码是md5加密,search密码,找到对用的js文件发现他是匿名函数,将他改写,通过execjs将js转换为python可以获得加密的密码,携带data模拟登录唯品会

from day01 import get_js_function
import requests
pwd = get_js_function('weipin.js','md5','666666')
data = {'loginName': 18329520409,
'password': pwd
}
url = 'https://www.epwk.com/index.php?do=login'
res = requests.post(url,data=data).json()
print(res)

python爬虫二十四:js逆向破解(一)相关推荐

  1. python爬虫高级教程,JS逆向之百度翻译

    环境 python版本号 系统 游览器 python 3.7.2 win7 google chrome 关于本文 本文将会通过爬虫的方式实现简单的百度翻译.本文中的代码只供学习,不允许作为于商务作用. ...

  2. python爬虫(十四)selenium(select、17素材网、模拟登录豆瓣和QQ空间、获取cookie、行为链)

    selenium介绍(下) 不管页面是动态加载还是静态加载出来的,只要是elements中能找到的,都能用selenium来获取数据,selenium获取数据的方式是以页面最终渲染后的前端为基础的,不 ...

  3. [Python人工智能] 二十四.易学智能GPU搭建Keras环境实现LSTM恶意URL请求分类

    最近用笔记本跑Keras和TensorFlow深度学习代码,一个模型跑十几个小时还奔溃,真的头大!这篇文章简单讲解易学智能GPU搭建Keras环境的过程,并实现了LSTM文本分类的实验,本来想写Goo ...

  4. [Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  5. Python爬虫(二十二)_selenium案例:模拟登陆豆瓣

    本篇博客主要用于介绍如何使用selenium+phantomJS模拟登陆豆瓣,没有考虑验证码的问题,更多内容,请参考:Python学习指南 #-*- coding:utf-8 -*-from sele ...

  6. Python爬虫网易云音乐--JS逆向-补充笔记

    课程地址:https://www.bilibili.com/video/BV1Mi4y147Yb up主省略掉的,用报错信息来一一回溯的方式把js文件补全的过程,主要把握的几个点(把以下部分代码找到粘 ...

  7. [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...

  8. [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  9. Python爬虫:爬取instagram,破解js加密参数

    Python爬虫:爬取instagram,破解js加密参数 instagram 是国外非常流行的一款社交网站,类似的还有像facebook.twitter,这些社交网站对于掌握时事热点.电商数据来源和 ...

最新文章

  1. 解决LaTex中插入Visio画图有多余边框的问题
  2. keystone同步数据之后不报错,查看日志有错误,进入MySQL没有如何数据解决方法
  3. Electron怎样进行渲染进程调试和使用浏览器和VSCode进行调试
  4. Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间
  5. mysql select array_从数据库select查询出来的数组
  6. Linux创建多个子线程并回收
  7. Android小項目之---吃飯選哪?--》選擇對話框(附源碼)
  8. mysql8.0安装问题
  9. 求一个二维数组的最大子矩阵的和
  10. C++ 泛型编程-函数模板
  11. Leetcode每日一题:26.remove-duplicates-from-sorted-array(删除排序数组中的重复项)
  12. 菜谱系列:蒜香炸鸡翅
  13. hibernate使用sql语句查询实体时,要写上addEntity
  14. 上海中环C位出道,自动驾驶天团横「扫」北上广
  15. 客快物流大数据项目(一):物流项目介绍和内容大纲
  16. Python创建微信机器人
  17. 尤里复仇退出界面_win10运行红警2尤里复仇的解决方法
  18. 各种图片、文字无缝滚动
  19. raid卡缓存对硬盘性能_可能是最简单的组raid教程
  20. java实现通过图片的URL地址下载图片

热门文章

  1. 魔百盒M301A免拆机线刷固件-九联代工-S905L2(附教程)
  2. Web前端学习笔记——HTML5与CSS3之购物车宣传案例
  3. RT-Thread 读写U盘
  4. 国内RPG网游市场显现疲软 ACG细分将成增量市场
  5. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(6)- 文语合成实现(pyttsx3, eSpeak1.48.04)...
  6. 工商银行 上海软件开发中心
  7. 后台服务(Service)
  8. idea解析文件部分乱码及其idea 设置编码
  9. 亮相智源大会,字节跳动自研同传系统的技术实现
  10. 考研院校选择的一些看法