拼多多的搜索的参数anti_content怎么破

今天继续带来破解拼多多的 anti_content 参数破解,代码已经放在github上:https://github.com/SergioJune/Spider-Crack-JS/tree/master/pinduoduo(点击原文阅读直达)

如果对你有用的麻烦给个 star 支持下哈

这个项目我也会持续更新,这两周暂不更新,只发文章,可能我前两周整天做这个,有点腻了,歇会。另外可以借这个文章复习下思路,你们也可以学习下思路,学了之后最好自己实践一遍,这样才会真正学到东西

废话不多说,开始正文。

1.寻找所需参数

拼多多网址为:http://yangkeduo.com/

点击搜索,然后开始滑动下一页,你可以看到这个:

image

这里有三个参数需要找的,其他参数都可以看得出是什么,有些也是固定不变的。

先从第一个参数 list_id 开始,一般都会打开搜索,进行搜索这个参数

image

随便一找,即可找到这里

image

这个是我们在第一次请求搜索页返回的,也就是发送这个请求:

image

通过多次实验,这个请求只需要带上关键字参数即可请求成功,比如这样:http://yangkeduo.com/search_result.html?search_key=瓜子类

只是关键字需要解析一下即可,问题不大。

在这个页面还给我们返回了 flip 这个参数,所以我们可以使用正则来获取这两个参数,剩下的就是 anti_content 了

我们可以试试再和上面那样,试试通过搜索** anti_content**,可以看到,也可以通过搜索看到,经过查找并多次断点,可以找到这个为位置:

image

image

打上断点,可以看到就是我们需要的数据,但是如何找到加密的位置呢?请继续往下看。

2.寻找加密位置

如果你单纯是想通过上面这种方式查找的话,估计会一整天都在那里按执行下一行代码,最后还有可能得不到自己想要的结果,今天告诉一个很简单的方法,因为每次都是发一个请求,所以我们可以在开发者工具下打个 xhr 断点,这样在我们滑动请求的时候就可以抓到这个请求,并查看调用栈即可快速找到,通过这个方法,最多就只需要半个小时吧(夸大了不太好)。

打 xhr 断点在这里打:

image

这里还可以根据请求的请求路径进行断点,我就不写上了,我直接捕获任何 xhr 断点了,你可以自己尝试下,当然,除了这个 xhr 断点,还有很多断点,比如事件监听等,这些在对反爬更加厉害的需要用到的时候就越多,所以,闲着没事的话可以研究这些断点,会了可以大大提高自己的工作效率,都是爬虫必会的。

打上断点之后,我们可以进行滑动,可以看到这里:

image

这里第一次捕获到的是我们浏览器的配置和我们活动的距离好像,这个可以直接忽略,进行下一个断点即可。

image

这里就可以看到我们需要找的参数了,但是这里已经生成了,我们可以直接查看右边的调用栈

image

经过多次查看,可以很容易就发现这个地方有点东西,立即下断点

image

这时我们可以先去掉 xhr 断点,然后刷看查看,获取不断点下一个断点直到运行结束再滑动到下一页即可。经过调试可以看到这个:

image

所以我们的 anti_content 参数就是从这里生成的,所以接下来就是继续查看这个语句执行的语句,再次经过多次调试,可以发现是从这里生成的:

image

ep(“0xd2”, “jLF%”) 即是 anti_content 的生成语句,可以继续在函数内部打上断点即可查看内部生成过程。

3.代码太多,只能利用execjs,或者使用接口

因为这里的代码太多,而且我又不太懂里面的加密过程,所以我才说这类加密通常都是只需要找到加密位置即可,接下来就是把所需要的加密 JS 代码扣下来使用 python 的 pyexecjs 来运行即可,但是如果你懂它里面的加密方法,就可以直接使用 python 提供的对应的加密方法进行使用即可,这样子就更容易得出结果,所以接下来需要学习的地方就是各种加密方法。

这里的加密方法我猜测是通过 deflate 加密方法,有兴趣的可以自己查看。

这里扣代码没什么好说的,说下这里的坑吧。坑有两个,

一个是需要使用到一个 cookie,不过固定即可,无需要获取,这个 cookie 是下面这个:

image

使用到的地方为这里:

image

通过 split 切割就是获取上面箭头所指的 cookie,下面的函数就是进行赋值然后返回给一个对象,这里通过自己慢慢调试都是可以知道的。

另一个坑就是需要使用到我们的第一次的搜索请求,有两个地方

image

image

到时调用函数传参即可。其他的就没有什么了,如果有请在留言区提问。

4.验证

我们可以使用 execjs 来执行 JS,或者使用node来执行然后提供给python 接口也是可行,看你个人,这里我直接使用 execjs 来执行了。

image

image

如果你 运行之后出现编码问题的话,可以看看这篇文章:https://sergiojune.com/2019/03/12/python运行execjs中出现编码问题/

可以获取了,完毕。源码放在了我的gihub,想要的可以点击原文阅读获取,对你有用的话记得给个 star 哈

最后

一开始写这个每周一爆的系列是因为,我看到现在网上的爬虫文章质量普遍都很低,能应用到实际工作的并不多,所以想写一些真正实用的文章,并且可以显著提高大家爬虫水平的。不知道大家想不想看这类文章,还是想看点基础类的文章,因为每次都非常用心写出来,原以为阅读量可能会很好,但最后都是很惨淡,在想自己是不是陷入了自嗨式写作,所以想大家给点建议,大家都想看哪类的文章。可以在下面投票下,谢谢。

本文仅用于交流学习,请勿用于非法用途,后果自负!

首发链接:https://sergiojune.com/2019/03/26/pinduoduo_anti_content/

image

点个赞支持下?

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值