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

2024-07-25
来源:网络整理

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

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

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

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

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

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

谈谈小程序调试问题

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

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

如何调试小程序?

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

小程序代码的路径为:

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

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

你会看到很多 . 文件,因为你打开了多个小程序。最好把这个文件下的文件全部删除,再重新打开目标小程序。这样里面的 . 文件就都是这个小程序的了,或者你可以根据使用时间判断刚刚从服务器下载的是哪一个。

需要把 . 的所有文件复制到电脑上,可以下载 RE 管理器。(复制这个目录需要你有 root 权限,所以要先 root 手机,或者在安卓模拟器里用微信,然后进行上述操作,模拟器默认是 root 的)。

这里需要特别声明:虽然微信小程序的包后缀是 .,但是部分带有依赖的包后缀也是 .。真正的小程序包大小大概在 1、2M 左右,而依赖包的大小则有 2、3M 甚至更多。因此,如果你手动反编译 . 类型的文件,可能会出现错误:This is , type of file。如果你遇到此问题,请注意,你可能没有找到正确的包!

. 是一个具有自身结构的二进制文件。

微信小程序源码阅读笔记大师的这篇博文有详细介绍,当然不能错过啦。

小程序一般文件大小不会太大,长按后点击右上角的选项压缩成zip包,然后把压缩包通过QQ发送到我的电脑上。

注意:如果不压缩,QQ会提示该文件不可用。

所以QQ的这个功能可以让我们很方便的获取源文件而不用去电脑目录下寻找模拟器的文件目录。

拆开

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

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

脱壳程序的地址为(见地址2):

地址1:

地址2:

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

最后只需运行命令:

node wuWxapkg.js xxxxxx.wxapkg

注意:此路径最好不要有中文字符,众所周知中文路径经常会引发一些奇怪的bug,如果路径中有中文字符,就自己解决吧。

此方法无法反编译所有小程序源代码,请注意!

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

调试小程序

注册小程序开发者账号

注册地址:

下载小程序开发者工具:

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

点击OK,出现如下界面。

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

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

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

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

如果操作出现问题:

1.你可以尝试一下,点击开发者工具详情,取消勾选es6 to es5,并勾选不验证安全域名。

2.检查完还是无法运行?那么请在详情里调整基础版本库到1.5左右再试

3.有些文件找不到怎么办?我只能告诉你:删!删!删!在app.json里,如果提示找不到文件,就把下面注册页面的语句暂时删掉。等能运行了再删。

4. 还是无法运行?那就自己想办法吧!

微信apk下载:

参考:

分享