爬虫JS逆向思路 --(几千块钱都学不到的思路)

article/2025/10/11 2:28:43

网络上几千块都学不到的JS逆向思路这里全都有👏🏻👏🏻👏🏻

本系列持续更新中,三连关注不迷路👌🏻  

干货满满不看后悔👍👍👍

📝个人主页→数据挖掘博主ZTLJQ的主页

b1691e6f246947eeb06ee06469621bc2.gif

个人推荐python学习系列:

☄️爬虫JS逆向系列专栏 - 爬虫逆向教学

☄️python系列专栏 - 从零开始学python


本次要学习的是某榜的数据--本系列提供完整思路

首先我们打开网站,打开F12抓包工具,选择抓包工具中的网络选项,选择XHR抓动态数据。

7e3a9939f2674b1aad7e7245ae387c48.png

可以看到网站的数据是排行榜的类型(这个也算是找动态数据的经验)-- 后面会解释有什么用

52c24da665e94f7eb37157545a302def.jpeg

 

调整好抓包工具后 再次刷新网站 抓取动态数据(可以看到下面的数据)

72ed1b0c696f47e89c8832b4825ba2f3.png

 这个网站的动态数据比较少,如果遇到比较多的动态数据,就可以根据上面我们判断我们要抓的是排行类型的数据,就可以直接定位到rank 排名的意思 找到数据接口

 

找到接口以后--- 点击接口中的预览 看是否有自己需要的数据(图片中已经显示 数据是我们需要的,那就表示已经找到了数据接口)

a1e87c9076ac49779d9879506405d4d5.png

 

接下来就是爬虫逆向的思路步骤了!!!

首先查看请求头是否有加密数据(图片中未发现有加密数据)

9a453af5ab8c40d0a69207a1b2bce4ad.png

 

 其次查看负载中是否有加密数据(图片中有加密数据)-- nonce与xyz都是加密的数据

f1831bc1ade44589ba25c3f2ea2a8a4a.png

那么这个时候就需要我们去解决这个加密的数据了

使用全局搜索,搜索nonce找到加密这个参数的方法

f9613332b1af47559d540f1f779d2d5b.png

点击进入到源代码

然后Ctrl+F 搜索nonce (看到 nonce 打上断点调试)

89757b98e37340e69558c18e0bc8fd56.png

 调试后 可以看到 这个j()函数 就是nonce的加密方法

064bb1515664442f803b8674c0fbdcc7.png

 进入到 j()方法 将j()方法复制下来 

cf6b4f213f62406c969dca49591e86c4.png

这里需要注意一下,这里是单独把js扣下来,所以需要改一下,改成function j(),而不是直接复制下来就可以直接使用的。

function j() {for (var a = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"], b = 0; b < 500; b++)for (var c = "", d = 0; d < 9; d++) {var e = Math.floor(16 * Math.random());c += a[e]}return c
}console.log(j())

 打开pycharm 创建js文件  粘贴刚刚复制的j()方法 运行看看是否能模拟 网站生成nonce

a29f035124bc40028bade858c4161125.png

 运行成功

9d2c4c9712c0486fbbfee6a2c7fb6d45.png

 

成功模拟出nonce以后 接下来就需要找xyz参数的生成方法

👇👇👇

与找nonce同理 但是这里可以看到 是和nonce生成在同一个js 只是使用的是不同的方法

2612b3a03921459482d859f88482bd51.png

根据图片就可以发现,xyz的生成和d()函数是息息相关的,那么我们直接进入d()函数看看是什么样的

cb1999bb66874dd0912aae7eefa30383.png

进入d函数以后可以看到,define里面一个关键字“md5”  这样就说明xyz应该是md5加密的  

接下来就2个思路,第一把整个d函数的js扣下来,用JS运行加密,第二就是用python直接模拟md5算法进行加密

我这里选择的是python直接模拟

但是这里还有一个问题就是,我们并不知道xyz到底是对哪一个参数进行了加密,这里我们就要对js进行调试了,如图我们调试发现,是对其他的全部参数进行加密(因为d()函数里面是h,定位h就是其他全部参数),那么我们就可以进行模拟了

ec9f1407b9634f8a9df351aa3a7d84b5.png

 这里模拟要注意 获取时间的时候 是当前时间-2  因为这个网站是获取到2天之前的数据 

并且这里还需要注意一点,开始的时间和结束的时间一定要设置好然后和其他参数一起写入,再进行加密,代码如下:

# 获取当前时间
now_time = datetime.datetime.now()
end = (now_time + datetime.timedelta(days=-2)).strftime("%Y-%m-%d")
start = (now_time + datetime.timedelta(days=-2)).strftime("%Y-%m-%d")
pojie = '/xdnphb/main/v1/weibo_day/rank?AppKey=joker&end={}&rank_name=个人认证&rank_name_group=&start={}&nonce={}'.format(end, start, nonce)
hl = hashlib.md5()
hl.update(pojie.encode(encoding='utf8'))
md5 = hl.hexdigest()
xyz = str(md5)data = {'end': end,'rank_name': '个人认证','rank_name_group': '','start': start,'nonce': nonce,'xyz': xyz
}

 

       本次的思路就这么多,这个系列会一直更新下去,之后我写的项目或者框架都会更新在这个系列中,希望大家多多支持。

       真诚的希望,这篇文章对大家有用,也希望大家能够学习到爬虫的精髓。✍🏻✍🏻✍🏻

 

 


http://chatgpt.dhexx.cn/article/VbrR5IOn.shtml

相关文章

手把手操作JS逆向爬虫入门(一)

本文爬取的网站如下&#xff08;可以找解密工具解码&#xff09; aHR0cHM6Ly9uZXdyYW5rLmNuLw 爬取的内容为网站的资讯情报版块的新闻资讯 鼠标点击翻页&#xff0c;在开发者工具中查看请求包&#xff0c;很容看出请求地址和参数&#xff0c; 其中post请求的参数如图&#x…

JS实现图片爬虫

最近在在学node.JS&#xff0c;尝试着跟着网上的教程学着写一个JS爬虫,来爬取网上的图片文件&#xff0c;在此记录过程 获取网站的html结构 首先我们引入node.js的http核心模块&#xff0c;初始化并将目标网站地址作为url参数&#xff0c;接受一个回调函数&#xff0c;在这个…

从零开始学JS爬虫,轻松抓取网页数据!

随着互联网的发展&#xff0c;网页已经成为人们获取信息的重要途径之一。而如何高效地获取所需信息&#xff0c;就成为了很多人关注的问题。本文将介绍JS爬虫入门&#xff0c;帮助读者从零开始抓取网页数据。 一、概述 在介绍JS爬虫之前&#xff0c;我们先来了解一下爬虫的基…

爬虫之JS的解析

JS的解析 学习目标&#xff1a; 了解 定位js的方法了解 添加断点观察js的执行过程的方法应用 js2py获取js的方法 1 确定js的位置 对于前面人人网的案例&#xff0c;我们知道了url地址中有部分参数&#xff0c;但是参数是如何生成的呢&#xff1f; 毫无疑问&#xff0c;参数肯…

JavaScript爬取网页并分析

JavaScript爬取网页并分析 任务分析 爬取三个网站下的新闻数据&#xff0c;这里选择网易新闻网&#xff08;https&#xff1a;//news.163.com/&#xff09;&#xff1b;提取每条新闻的如下字段&#xff1a;标题&#xff0c;内容&#xff0c;发表日期&#xff0c;网址&#xf…

js - 爬虫的实现

爬虫的原理 爬虫&#xff0c;就是一个自动爬取网页上展示的信息的工具。我们要写一款爬虫&#xff0c;就要满足下面的条件&#xff1a; 网络的请求。首先我们要进行网络请求&#xff0c;让目标给我们返回信息&#xff08;常用的模块有http、http2、https、request、axios、pu…

Node.js实现简单爬虫 讲解

一、什么是爬虫 网络爬虫(又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者)&#xff0c;是一种按照一定规则&#xff0c;自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕…

爬虫攻略(一)

互联网 Web 就是一个巨大无比的数据库&#xff0c;但是这个数据库没有一个像 SQL 语言可以直接获取里面的数据&#xff0c;因为更多时候 Web 是供肉眼阅读和操作的。如果要让机器在 Web 取得数据&#xff0c;那往往就是我们所说的“爬虫”了。现在项目需要&#xff0c;所以研究…

javascript爬虫

用js爬虫&#xff0c;使用到nodejs 例子中爬取的是中国新闻网时政频道的最新10条新闻的title和链接 事先准备&#xff1a; 1、先去node官网下载安装一下 2、推荐vs code&#xff0c;需要通过终端下载插件&#xff0c;不想的话用cmd小黑框做终端&#xff0c;记事本写代码也行…

用js写个爬虫

如何用js完成爬虫项目 前言一、node.js的安装二、mysql的安装三、确定爬取网页四、查看分析网页源码五、开始写爬虫npmNode调用mysql定义要访问的网站定义新闻页面里具体的元素的读取方式定义哪些url可以作为新闻页面构造一个模仿浏览器的request读取种子页面解析出种子页面里所…

Docker—容器数据卷

目录 1.什么是容器数据卷 2.数据卷的使用 3.实战MySQL同步数据 4.卷 常用命令 5.匿名挂载与具名挂载 5.1 匿名挂载 5.2 具名挂载 6.数据卷容器 1.什么是容器数据卷 Docker将运用与运行的环境打包形成容器运行&#xff0c; Docker容器产生的数据&#xff0c;如果不通过d…

docker删除已停止的容器

一、docker删除已停止的容器 1、根据容器的状态&#xff0c;删除Exited状态的容器 先停止容器、再删除镜像中的容器、最后删除none的镜像。执行命令如下&#xff1a; docker stop $(docker ps -a | grep "Exited" | awk {print $1 }) #停止容器 docker rm $(docke…

Docker与容器的区别

容器 虚拟机和容器结构主要区别在于中间两层&#xff0c;虚拟机自带了操作系统&#xff0c;这个操作系统可以和宿主机一样&#xff0c;也可以不一样&#xff0c;而容器是和宿主机共享一个操作系统。我们知道&#xff0c;操作系统的内容是很多的&#xff0c;就像我们自己电脑上的…

docker 删除 容器/镜像 方法

docker的删除有两种&#xff0c;一个是rm 删除容器&#xff0c;一个是rmi删除镜像 想要删除运行过的images(镜像) 必须首先删除它的container(容器) 首先查看并找到要删除的镜像 docker images 这里我们要删除hello-world镜像 使用rmi 加 镜像id docker rmi fce289e99eb9 报…

docker多容器操作与强制删除容器的方法步骤

简介&#xff1a; 这是一篇有关【doker的多容器操作和强制删除容器的方法】的文章&#xff0c;用最精简的语言去表达给前端读者们。 1、创建多个容器 在WIndows环境下我们来作这个&#xff0c;先打开三个PowerShell窗口&#xff0c;然后在每个窗口中输入创建容器的命令&#…

Docker删除镜像和容器

一、删除容器 首先需要停止所有的容器&#xff08;只停止单个时把后面的变量改为image id即可&#xff09; docker stop $(docker ps -a -q) 删除所有的容器&#xff08;只删除单个时把后面的变量改为image id即可&#xff09; docker rm $(docker ps -a -q) 二、删除镜像…

如何删除docker镜像与容器

目录 删除示例&#xff1a; 1.查看docker中要删除的镜像 2.删除镜像&#xff0c;使用命令“docker rmi image id” 3.查看docker中正在运行的容器 4.停止容器 5.删除容器 6.查看容器 7.删除镜像 8.最后查看所有镜像 删除示例&#xff1a; 1.查看docker中要删除的镜像 …

docker删除容器日志

废话不多数,看步骤 查看容器日志命令 docker logs -f 容器id 1.进入docker容器目录 cd /var/lib/docker/containers/ 2.查看容器的id&#xff0c;获取容器id&#xff0c;容器id就是容器目录名字 docker ps -a 3.进入容器&#xff0c;删除以.log结尾的文件就是日志文件了&a…

Docker 删除容器

用docker一段时间后&#xff0c;host上可能会有大量已经退出了的容器&#xff0c; 这些容器依然会占用host的文件系统资源&#xff0c;如果确认不会再重启此类容器&#xff0c;可以通过docker rm删除 docker rm一次可以指定多个容器&#xff0c;如果希望批量删除所有已经退出的…

如何优雅地删除Docker镜像和容器(超详细)

一、前言 大家是怎么删除Docker中的镜像和容器的呢&#xff0c;有没有考虑过如何优雅地删除呢&#xff1f;本教程详细指导如何在优雅地删除Docker容器和镜像。如需了解如何在Centos7系统里面安装Docker&#xff0c;可以参考教程【最新Docker在Centos7下安装部署&#xff08;参考…