微信小程序抓取攻略:解决抓包和调试难题,轻松获取小程序数据

2024-06-08
来源:网络整理

今天我们来聊聊如何抓取微信小程序,其实抓取小程序并不难,主要就是抓包和调试小程序,如果你对调试已经很熟悉了,那么就很简单了。

先说一下小程序抓包的问题

如何在不破解的情况下抓取小程序的包?破解是一件费力的事情,一不小心你的微信账号就可能被封。

如果小程序无法抓包,一般是手机安卓系统版本和微信APP版本过高,版本越高越安全,建议换个安卓系统4.4以上,微信APP版本6.7左右的手机,正常使用或抓包。

如果你实在没有安卓版本低的手机或者微信版本低的手机,那就继续往下看文字吧,后面我会介绍一种抓包方法。

只要抓包做好了,很多小程序都能抓到,剩下的就是解决IP问题了。部分小程序在前端有反爬取措施,请求参数做了加密或者混淆处理。所以小程序调试问题还是需要解决的。

谈谈小程序调试问题

首先你需要对小程序有一定的了解,简单来说小程序也是一个网站,但是只能在微信里打开,不能在浏览器里打开。

我们都知道一个网站的前端页面是由html、css组成的,小程序的前端页面也是由类似的组成。小程序内的数据交互也是由它负责的。所以小程序的爬虫调试也主要是调试。

如何调试小程序?

当我们在微信中点击一个小程序的时候,微信就会把这个小程序的前端代码下载到你的手机上,只要我们拿到了小程序的前端代码,我们就可以在微信提供的小程序开发者工具上进行调试了。

小程序代码的路径为:

/data/data/com..mm//微信ID文件夹//pkg/

该路径中以 . 结尾的文件是小程序前端代码的编译形式。

你会看到很多 . 文件,因为你打开了多个小程序。最好把这个文件下的文件全部删除,再重新打开目标小程序。这样里面的 . 文件就都属于这个小程序了。

需要将 . 的所有文件复制到电脑上(复制此目录需要root权限,所以必须先root手机,或者在安卓模拟器中使用微信,再进行上述操作,模拟器默认已经root)。

拆开

我们的目的是拿到小程序的前端代码,然后在小程序开发者工具里调试,因为是编译好的小程序,所以要反编译,解压出源码。

感谢开源世界,一些爱好者已经开发了脱壳程序。我们可以使用它。

脱壳程序的地址为:

该解包程序是使用node.js开发的,所以要先安装node.js,然后安装node.js的一些依赖。文中作者已经说的很清楚了,我就不重复了。关于该程序的使用,网上也有很多文章。

最后只需运行命令:

node xxxxxx.wxapkg

Node是运行node.js的命令,可以还原小程序前端源代码,类似下图。

调试小程序

注册小程序开发者账号

注册地址:

下载小程序开发者工具:

打开小程序开发者工具,选择导入现有项目,也就是选择上面解压出来的文件夹。

点击OK,出现如下界面。

现在就可以调试小程序了,界面很熟悉,跟浏览器的调试很像,可以点击面板然后对js打断点,也可以直接在里面运行一段js代码,如果想知道请求的URL是怎么加密的,打断点调试一下就行了。

另外我在文章前半部分提到了一个抓包问题,目前还没有得到解答。如果是高版本的安卓系统,在微信高版本中如何抓取小程序的数据包呢?有一个技巧就是使用小程序开发者工具进行抓包。仔细看上图中的红框,里面有一个功能一样的面板,在面板中可以看到这个小程序的网络请求。

另外,因为这个小程序是别人开发的,所以如果要运行这个小程序,必须让它不验证域名和SSL证书,如下。

总结一下,解决了抓包和调试小程序的问题之后,可以抓取大部分小程序了,部分小程序需要登录微信才能访问,想要大规模抓取,还是要解决账号数量多的问题。

分享