1、复习

os模块 import os
os模块目前学习过保存图片、重命名
os.rename()
创建文件目录、子目录
dir_path = ‘’
os.path.exists(dir_path) 判断是否存在
os.makedirs(dir_path)如果不存在就创建文件
os.path.join(dir_path, second_title) 拼接成完整的路径
深拷贝 import copy
deep.copy

2、js逆向 环境搭建

JS javascript JS反爬是开发者通过javascript这门语言设置的反爬
js 反爬对应的反反爬策略称之为js逆向

微信公众平台
登录界面抓包、里面的form data表单里携带的数据,密码是经过加密的
所以要找到这种加密方法,携带参数登录
配置环境:
1、安装nodejs 安装完毕检测 cmder—输入 node -v 看得到版本号即可
2、vscode的安装 配置code runner 中文包
如何在python里执行js代码

3、有道案例

有道翻译:
https://fanyi.youdao.com/

js逆向的大致过程:

1、通过加密字段定位到加密的大致位置
2、找到开发者工具右上角三点 —找到开发者工具右上角三点 —点击进入—选择search—把加密字段输入搜索框—点击json代码—点击{},做格式化
3、进一步在js文件中搜索加密字段:ctrl+f 输入加密字段再次搜索加密字段 —在可疑的位置打上断点
4、然后找到加密处理方式,进行post请求

4、有道翻译案例

找到加密字段
借助加密字段名做初步定位,再进一步进行js调试;vscode 一定要把js码调试到没有错误
通过python运行调试成功后的js代码
最后 携带加密之后的参数

5、百度翻译

1、确定加密字段为 sign (query没有加密)
2、找到加密代码 打断点调试
3、python调用js代码
4、提交表单
5、
第一次请求获取token和window.gtk url:https://fanyi.baidu.com/?aldtype=16047
第二次请求翻译结果 post请求 需要携带token 在XHL里找url
tips:以后但凡在form表单中需要携带token或者xxxtoken的,可以去网页源代码中找 可能时间长token会变化

6、网易云音乐案例

需求:下载大鱼mv到本地
https://music.163.com/#/mv?id=5323557
在下面url请求结果中找到data表单里携带的视频播放的url
https://music.163.com/weapi/song/enhance/play/mv/url?csrf_token=
tips:这个url请求方式为post ,需要携带表单数据,加密数据。找到加密处理方法。

js调试
e6c.data = j6d.cr7k({
params: bKB3x.encText,
encSecKey: bKB3x.encSecKey
})
通过调试找到这两个加密字段是在bKB3x中获取的,故要找到这个bKB3x生成的位置
“{“id”:”5323557”,”r”:”1080”,”csrf_token”:””}”的原始数据是

  1. csrf_token: “”
  2. id: “5323557”
  3. r: “1080”

7、闪职案例

加密字段是
第一次 get请求获得pk(公钥)和token url:http://shanzhi.spbeen.com/login/
第二次 携带表单数据 发送post请求:http://shanzhi.spbeen.com/login/assword:password:passpassword:word:

1、找加密字段

2、找加密方法

方法一:通过search
方法二: 通过栈的方式

补充:加密代码形如
eval(function(p, a, c, k, e, d) {
e = function(c) {
return (c < a ? “” : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
}
需要进行解密,解密网站 http://www.ab173.com/enc/eval_package.php
通过分析发现 应该是进行rsa加密 知道加密算法之后 要么使用python 重构加密方式 要么使用nodejs的环境
1、python重构RAS加密算法:一般来说,知道加密算法后,加密的核心是一般是不会有很大变化的 ,有的网站可能会对加密之前的或者加密之后的密码做出修改,要仔细辨别加密过程。
2、通过nodejs环境处理加密
处理nodejs:
以管理员权限打开cmder窗口
cd /d C:\Users\小妹儿\PycharmProjects\爬虫2\第27讲js逆反\JS
进入到之后输入:npm install -g cnpm —registry=https://registry.npm.taobao.org(做国内资源的映射)不做映射可能会安装失败
输入命令 安装 cnpm install node-jsencrypt

8、处理无限debugger的方法

1、debugger左边框框鼠标右击—选择添加条件断点—输入false
2、还是右击选择 永不在此停留
3、让当前页面所有都失效 右侧的黑色大圆图标—-点击成蓝色

作业:

凡科网: https://i.fkw.com/?%20ta=3&_ta=207
拿到加密字段,进行加密 ,再建一个tools.py文件进行调用