声明:本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录
引用博客:
https://blog.csdn.net/shayuchaor/article/details/103629294
https://blog.csdn.net/qq_36291294/article/details/128600583
https://blog.csdn.net/weixin_58584029/article/details/125286386
https://blog.csdn.net/randy521520/article/details/135304045
https://blog.csdn.net/weixin_44862184/article/details/125302589
前言
某数的反爬机制和大致的破解流程已经是被摸透了,某数小白可以根据上面提供的引用博客从上往下逐一阅读,相信看完能让你对它有个整体的了解。下文是在博客爬虫瑞数4案例:网上房地产下进行实战讲解的,本身作者已经讲解的很到位了,在这我就不献丑了。只是在使用作者最后提供的代码调试了很久才通过,便再次记录下踩坑过程,希望对大家有所帮助。
实战
目标网址:aHR0cDovL3d3dy5mYW5nZGkuY29tLmNuL29sZF9ob3VzZS9vbGRfaG91c2UuaHRtbA==
在无痕模式下打开浏览器,开启开发者模式,然后在源代码/来源
那开启脚本
调试,如下图:
前奏设置好后直接打开网址,它会在外链js中断住
这时看一下cookie,然后F8或者点击继续执行按钮,让调试继续执行下去
这是就拿到自执行函数了,这里就大概重复下作者的讲解
之所以讲解这一个其实还有一个目的,就是有些人会对最终生成的cookie长度217
有所怀疑,这里说一下某数能增加最终cookie长度的其实还有两个地方
但是它并不是一定需要执行这两个地方,这里我们在_$Du('aEAA');
下断点,让程序执行到这一步
然后再看一下cookie,发现这时已经生成了目标cookie值,我们拿这个cookie去发包请求发现是能拿到数据的,也就是说按作者的代码最终生成的cookie长度为217也是能拿到数据的,至少对于这个网址来说。
踩坑
外链js引入执行报错:SyntaxError: Unexpected token ‘)’
一开始按作者讲解的,把调试拿到的ts代码直接copy到文件中执行是没问题的,但是后面我直接保存外链链接的内容时便出现问题了,由此操作是我想使用require的方式引入外链js代码require('./c.FxJzG50F.dfe1675');
这里给大家看看两种格式差异:
调试拿到的外链js:
源码拿到的外链js:
最后还是直接使用调试拿到js就没问题了
编码异常
外链js的编码是ISO-8859-1
,直接本地运行会报'gbk' codec can't decode byte 0x80 in position 41: illegal multibyte sequence
,这时需要设置本地编码环境,如下设置就能成功了。
运行结果
我这边最终使用作者提供的代码是可以运行成功的,下面附上我的代码截图
fdc.py
fdc.js