高级实战案例:Python反反爬之JavaScript混淆

python携程爬虫之逆向混淆js 前言 那些年携程工程师在代码里下的毒-反爬与反反爬的奇技淫巧 知乎上面的专栏,写出了逆向找到携程的Eleven参数来伪装浏览器发送ajax,获取携程的酒店房型列表。然而文章并没有给出全部的思路,我们获取到的页面内容内容是酱紫的: 所以没办法,只能自己撸出来,看看到底是怎么加密的。 DEBUG 首先还是查看ajax请求网址时 http://hotels.ctrip.com/Domestic/t... 阅读详情

写在前面

很早之前在吾爱破解论坛上看见了【猿人学】Web端爬虫攻防大赛,当时进入他们官网的时候,比赛已经结束了。看着那些题目还挺有意思的,但由于各种原因一直没有机会去做那些题目。最近比较闲,就去把猿人学官网打开看了一下,尝试着完成了第一道题目---JS混淆[源码乱码]

"""
当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢? 
学习Python中有不明白推荐加入交流群号:928946953 
群里有志同道合的小伙伴,互帮互助, 群里有不错的视频学习教程和PDF!
还有大牛解答!
"""

题目


题目网址点我去刷题

抓取所有(5页)机票的价格,并计算所有机票价格的平均值,填入答案。


题目看着挺简单,就是抓取机票的价格,并算出平均值,但是当我们打开开发者调试工具的时候,就会遇到第一个坑

关闭断点

当我们打开调试工具的时候,会弹出这么一个页面


这是一个debug断点,会阻拦我们后面的操作,但是并没有什么关系,很简单就能把它关闭

查看数据来源

接着,我们点击【Network】,按ctrl+f5刷新网页,又会出现阻拦的操作,我们依然点击刚才箭头符号,就可以解决

接着,我们回到【Network】,点击【XHR】,就会发现多了一条信息
至于,为什么要去点击【XHR】而不是点击其他的地方;其实也很简单,你稍微去检测一下这个网页,就会发现,机票的价格是通过XHR请求获取到的

有些小伙伴可能就要问了,什么是XHR请求,你可以去这篇文章看看XHR 请求


回过头来,我们来看看多出来的那条信息


查看这条信息的Header,发现它的URL很有意思,特别是画蓝色下划线的地方,这里我们先不管,我们接着看一下Preview

这就更有意思了,如我们所预料的,机票的价格都包含在这里面

分析URL

链接和数据都找了,我们去访问一下刚刚的链接(间隔了一段时间),理所当然的报错了

{"error": "token failed"}

JavaScript

复制

我们看一下这条链接

http://match.yuanrenxue.com/api/match/1?m=f289e3140053a9320c137b67e8723ba3%E4%B8%A81608971657

经常写爬虫的同学就会发现,后面的数字串【1608971657】,一定是一个时间戳
也就是说,要想正常的访问这条链接拿到数据,一定要有正常的时间戳
那么,何为正常的时间戳,一定和前面的字符串有关(m=
f289e3140053a9320c137b67e8723ba3%E4%B8%A8)

我们继续刷新页面,发现【m=...】里面的字符串随着时间的推移都在进行变化,唯独[%E4%B8%A8]没变

[%E4%B8%A8],这个我想大家只要用过百度搜索就应该很熟悉吧,它是经过UrlEncode处理得到的,我们只需要反解码就能知道[%E4%B8%A8]到达是个什么东东
我们来到,站长工具,将它进行解码


很容易的,我们得到了它的值------>丨(没错就是这么一个中文符号)

寻找丨符号

根据题目的提示[js混淆 源码乱码],我们可以想到一个很清晰的思路,就是去源码当中查找 丨
回到页面,点击鼠标右键,点击[查看网页源代码]
按crtl+F ,搜索丨 符号,会找到唯一的一处代码
仔细地查看代码,发现它是写在script标签里面的
我们将整个script标签复制下来,到notepad++里面打开

<script>window.url='/api/match/1';request=function(){var timestamp=Date.parse(new Date()) + 100000000;var 
逆向工程实战:破解雪球数据接口的JS混淆与签名算法 在数据采集和爬虫开发领域,理解现代Web应用的反爬机制是核心技术之一。其原理通常围绕客户端加密、请求签名和代码混淆展开,旨在验证请求合法性并阻止自动化访问。这些技术的工程价值在于保护数据接口安全,同时为合规的数据分析、市场研究及量化策略提供了技术挑战。典型的应用场景包括金融数据采集、舆情监控和价格追踪等。本文以雪球平台为例,深入解析其核心防御体系,特别是针对 `md5__1038` 签名算法和JS混淆技术的逆向工程方法,涵盖网络抓包、动态调试到Python模拟实现的全流程,为开发者应对类似加密与混淆场景提供 阅读详情

相关推荐

反反爬入门——JS混淆之百度翻译!这个爬虫教程有点东西!

一、分析百度翻译网页,获取明显易得的参数 以定位到URL为前提 先作对比,找出不同的参数 从之前的请求响应中找数据 (1)网页源代码中查找 (2)全局请求搜索 可以观察到,我们输入中文时回车或者点击翻译按钮又或是不管的时候,这是会有一个结果响应,即对应的英文单词。 在XHR中我们看到了有加载的数据,我们试着在这里面找东西。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 我们看到有个英文单词叫做tra

爬遍所有网站 326

基于Playwright与反混淆技术的现代JavaScript爬虫实战指南

本文将深入探讨如何解析混淆JavaScript并构建高效Python爬虫的完整技术方案。我们将从JavaScript混淆原理讲起,详细介绍使用AST解析、动态执行等反混淆技术,并重点讲解如何利用Playwright这一现代化浏览器自动化工具来应对复杂的前端反爬机制。文章包含大量实战代码示例,涵盖反混淆处理、自动化浏览器控制、数据提取等关键环节,最后还将分享高级爬虫策略与法律合规建议。关键词:JavaScript反混淆、Playwright爬虫、AST解析、反反爬技术、Python爬虫。

2201_76125261的博客 745

基于WebAssembly分析+Python爬虫:现代反反爬技术实战,破解90%的加密参数

网站通过检测请求的真实性来识别爬虫,爬虫通过模拟真实用户的行为来绕过检测。分析Wasm的过程,本质上是理解网站的加密逻辑;而编写爬虫的过程,是将这种逻辑转化为代码,并结合环境模拟、行为模拟,让爬虫看起来像真实用户。掌握了这个核心思路,无论反爬技术如何升级,都能找到破解的方法。如果你的爬虫项目中遇到了复杂的Wasm加密问题,不妨按照本文的步骤一步步分析,大概率能解决问题。当然,爬虫技术是一把双刃剑,合理使用才能发挥其价值。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1564

斯坦福HumanPlus机器人核心技术解析:从HST强化学习框架到HIT模仿学习的实现路径

本文深入解析了斯坦福HumanPlus人形机器人的核心技术实现路径。其核心在于HST强化学习框架与HIT模仿学习架构的协同:HST作为“小脑”,通过rsl_rl框架在仿真中训练稳健的低级运动控制;HIT作为“大脑”,基于改进的Transformer架构学习高级任务规划。文章详细拆解了从算法原理、代码实现到硬件部署的全流程,为复现这一前沿机器人系统提供了实战指南。

weixin_29082143的博客 281

银河麒麟桌面版V10搭建Qt4.8.6开发环境

银河麒麟桌面版V10搭建Qt4.8.6开发环境

qq_34932364的博客 2399

Maya绑定:人物绑定详细案例(创建骨骼、镜像骨骼、IK创建、IK打组、IK控制器、FK控制器、烘焙动画、导出)

Maya绑定:人物绑定详细案例(创建骨骼、镜像骨骼、IK创建、IK打组、IK控制器、FK控制器、烘焙动画、导出)

m0_45877477的博客 1633

深入解析PVT corner:从wcl到ml的芯片设计关键考量

本文深入解析了芯片设计中的PVT corner概念,重点探讨了从传统WC到先进工艺下WCL、ML等关键工艺角。文章详细阐述了温度反转效应如何使低温WCL成为最严苛的时序场景,并提供了基于先进工艺的实战签核策略与多角多模分析流程,确保芯片在极端工艺、电压、温度下的稳健性。

tree8的博客 527

国赛数学建模高教社杯历届优秀论文全集

包含了2004到2023年高教社的赛题及优秀论文。

BanDeng001的博客 3288

【SystemVerilog笔记(一)】数据类型

(一)内建数据类型 1.按照四值逻辑和二值逻辑分类 四值逻辑类型:integer、logic、reg、wire等线网类型 二值逻辑类型:byte、shortint、int、longint、bit 2.按照有符号和无符号分类 有符号类型:byte、shortint、int、longint、integer 无符号类型:bit、logic、reg、wire等线网类型 ※记忆:按位定义的变量是无符号的。 (二)软件常用类型 1.定宽数组 在这里插入代码片 ...

cc__cc__的博客 1万+

瑞芯微RV1109平台GT911触摸屏驱动调试记录1

很明显这里可以看到系统已经配置了i2c-0、i2c-1、i2c-3、i2c-4、i2c-5,当开机的时候系统已经将相应的I2C节点注册成功了,说明I2C部分是没有问题的。

bingdund的博客 297

人工智能训练师三级补贴3120元申领全攻略|条件+流程+五省市对比

补贴是真的,但不是"白给"的。你需要满足社保、户籍、时间等条件,严格按照流程操作。记住四件事先确认自己是否满足条件,再报名——别考完了才发现领不到紧缺工种补贴更高——确认你所在城市是否在紧缺目录中证书下发后12个月内申请——设个日历提醒材料准备齐全再提交——避免来回折腾如果你正在考虑考人工智能训练师三级证书,想要从报名到备考到拿证到申领补贴的完整一站式指南,欢迎查看我的付费专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程。

白话机器学习 1524

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: Python分析5000+抖音大V,发现大家都喜欢这类视频!
下一篇: 一行Python代码玩遍童年的小游戏
Python编程_可乐
博客等级 码龄6年 917粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值