当前位置: 首页 > news >正文

爬虫准备前工作

1.Pycham的下载

网址:PyCharm: The only Python IDE you need

2.Python的下载

网址:python.org(python3.9版本之后都可以)

3.node.js的下载

网址:Node.js — 在任何地方运行 JavaScript(版本使用18就可以)

4.curl的使用

网址:Convert curl commands to code(复制网址的curl写简单的request)

5.Python代码中运行js代码

import subprocess
from functools import partialsubprocess.Popen = partial(subprocess.Popen, encoding="utf-8")import execjswith open("007 js逆向解密、加密数据.js", encoding="utf-8") as f:jsCode = f.read()
js_compile = execjs.compile(jsCode)
sign = js_compile.call("d", json_data)

6.Proxy补环境监听

// proxy代理监控器
delete __dirname
delete __filenametop = self = window = globaldocument = {}
location = {}
navigator = {}
history = {}
screen = {}function getEnv(proxy_array) {for (var i = 0; i < proxy_array.length; i++) {handler = `{\nget: function(target, property, receiver) {\nconsole.log('方法:get','    对象:${proxy_array[i]}','    属性:',property,'    属性类型:',typeof property,'    属性值类型:',typeof target[property]);return target[property];},set: function(target, property, value, receiver){\nconsole.log('方法:set','    对象:${proxy_array[i]}','    属性:',property,'    属性类型:',typeof property,'    属性值类型:',typeof target[property]);return Reflect.set(...arguments);}}`eval(`try {${proxy_array[i]};${proxy_array[i]} = new Proxy(${proxy_array[i]}, ${handler});} catch (e) {${proxy_array[i]} = {};${proxy_array[i]} = new Proxy(${proxy_array[i]}, ${handler});}`)}
}proxy_array = ['window', 'document','location', 'navigator', 'history', 'screen']
getEnv(proxy_array)

7. webpack细节

  1. 开头进行补环境 window = global (先运行,看哪些环境需要进行补)
  2. 在加载函数中,注释初始化,一般在加载器函数中(最后一行)的进行注释 例如: // o(o.s = 0)
  3. 全局要调用加载器函数(看加载器函数中调用的是哪个对象就调用哪个全局变量) 例如: o.e/o.c/o.r(这时候我们就可以这样调用window.zhang = o)
  4. 打上执行模块日志,也在加载器函数中 (console.log("t:::",t))
使用webpack的步骤
(1) 定位入口确认使用了webpack对象
(2) 断点加载器,一般通过刷新页面触发
(3) 注意这是一个单文件的还是多文件的webpack
(4) 将加载器文件拷贝到本地,做以下三件事
    -- 全局化
    -- 日志
    -- 观察初始化
(5) 测试加载器的调用,根据模块日志补充mod

8.js入口定位查找方法

第1知识点:关于json请求体
第2知识点:关于精准请求(如何排除干扰请求)
第3知识点:入口定位
         一、关键字方法
            (1) 方法关键字
                encrypt :加密入口
                decrypt :解密入口
                JSON.stringify:加密入口
                JSON.parse:解密入口
            (2) key关键字
            (3) headers关键字 xxx()
            (4) 拦截器关键字
                    interceptors.request.use
                    interceptors.response.use
            (5) 路径关键字
第4知识点:断点与断点调试
         普通断点
         XHR断点
         条件断点
         日志断点
         脚本断点

http://www.xdnf.cn/news/264025.html

相关文章:

  • 【AI面试准备】NLP解析API文档生成测试脚本
  • 二叉树 - JS - 2
  • 49-dify案例分享-私有化 MCP 广场搭建与网页小游戏智能体工作流实战
  • 学习Cesium自定义材质
  • 硬件工程师面试常见问题(12)
  • 【LeetCode Hot100】贪心篇
  • 在pycharm profession 2020.3将.py程序使用pyinstaller打包成exe
  • Windows 中使用dockers创建指定java web 为镜像和运行容器
  • C++ STL vector高级特性与实战技巧
  • AVFormatContext 再分析零
  • 在Windows系统中使用Docker发布镜像到镜像仓库
  • 用PyTorch搭建卷积神经网络实现MNIST手写数字识别
  • 生成式 AI 的工作原理
  • Elasticsearch 中的索引模板:如何使用可组合模板
  • 【在Spring Boot中集成Redis】
  • 【赵渝强老师】TiDB生态圈组件
  • 3D人物关系图开发实战:Three.js实现自动旋转可视化图谱(附完整代码)
  • 人工智能助力工业制造:迈向智能制造的未来
  • 别样健康养生之道
  • AI 与生物技术的融合:开启精准医疗的新纪元
  • ros2 humble 控制真实机械臂(以lerobot为例)
  • 一种基于重建前检测的实孔径雷达实时角超分辨方法——论文阅读
  • **Java面试大冒险:谢飞机的幽默与技术碰撞记**
  • 做响应式布局网页多简单
  • AI生成视频检测方法及其相关研究
  • WebRTC 服务器之Janus概述和环境搭建
  • Spring MVC入门
  • 第12章:精神力的禁忌边界
  • 强化学习--3.值函数的方法(贝尔曼方程)
  • 直播推流拉流Token验证流程(直播服务器:SRS,验证服务器:EGGS(nodejs))