• 0
  • 0
分享
  • 谈下微信小程序的抓取技巧——软件测试圈
  • quinn 2022-09-16 15:01:55 字数 1900 阅读 9332 收藏 0

今天聊下微信小程序的抓取,其实小程序的抓取不难,主要解决抓包和如何调试小程序这两个问题。如果你运用chrome调试已经比较熟练了的话,就手到擒来。

先来说小程序抓包问题

不用破解的办法如何抓到小程序的包?破解是个费劲的事,一不小心微信账号还可能被封。

小程序抓不到包通常就是你手机的安卓系统版本太高和微信APP的版本太高了。版本越高,通常它的安全性就越好。换用安卓系统是4.4的手机和微信APP版本在6.7左右的版本。使用Fiddler或Charles抓包妥妥的。

如果你实在没有低安卓系统版本手机和低版本微信,继续看下面的文字,待会再介绍一种抓包方法。

只要抓包搞定了,很多小程序也就能抓取了,剩下就是解决IP问题。还有一部分小程序在前端有反爬措施,对请求参数加密或混淆了。所以就还得解决小程序调试问题。

再说下小程序调试问题

首先得对小程序有一点理解,小程序简单来说也是一个网站,只是它只能在微信里打开,不能在浏览器里打开。

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

那怎么调试小程序的javascript呢?

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

小程序代码的路径在:

/data/data/com.tencent.mm/MicroMsg/微信号id文件夹/appbrand/pkg/

该路径下以.wxapkg结尾的文件就是小程序前端代码被编译之后的形式。

1.png

你会看到很多个.wxapkg文件,因为你打开过很多小程序,最好是你把这个文件下的文件全都删除,重新打开目的小程序。然后里面的.wxapkg文件就都是该小程序的了。

你需要把.wxapkg的文件都拷贝到你的电脑上来。(拷贝该目录需要你拥有root权限,所以你得先把手机root了,或者在安卓模拟器里面使用微信,进行如上操作,模拟器默认是root了的)。

解包wxapkg

我们的目的是拿到小程序的前端代码在小程序开发者工具里面调试,wxapkg是编译之后的小程序,所以还得反编译,让wxapkg解包出源代码。

要感谢开源的世界,已经有爱好者开发出了.wxapkg的解包程序,我们就直接拿过来用。

解包程序的github地址是:

https://github.com/qwerty472123/wxappUnpacker

解包程序是由node.js开发的,所以你得先安装node.js,然后再安装node.js的一些依赖包,作者已经在文字里说得很清楚了。我就不再赘述,网上也有很多该程序的用法文章。

最后你只需要运行命令:

node xxxxxx.wxapkg

node是运行node.js的命令,即可把小程序前端源代码还原了。类似下图这样的。

2.png

调试小程序

注册一个小程序开发者账号

注册地址:https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN&token=

3.png

下载小程序开发者工具:

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

4.png

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

5.png

点击确定。就出现以下界面。

6.png

这就可以对该小程序做调试了,界面是不是很熟悉,是不是跟chrome浏览器的调试很相似。你可以点选sources面板,然后对js打断点,也可以在console里直接运行一段js代码。想要知道请求的URL是如何加密的,跟chrome一样,打断点调试即可。

另外我文章上半部分说了一个抓包问题,还没有解答,如果是高版本安卓系统,高微信版本如何抓包小程序。一种小技巧就是借助小程序开发者工具来抓包,细看上图红框,有个Network面板,跟chrome的功能是一样的,这个小程序的网络请求在Network面板里能看到。

另外因为这个小程序是别人开发的,你要把这个小程序运行起来,要让它不去验证域名和ssl证书那些,如下。

7.png

综上解决了抓包和调试小程序问题,就能抓取绝大部分小程序了。还有一些小程序必须要微信登陆才能访问,要大规模抓取,你还是得解决大量账号的问题。


作者:佚名

原文链接:https://blog.csdn.net/sergiojune/article/details/100788458

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   测试行业那些事儿,还有什么是你不知道?填问卷,了解详情。链接:http://vote.51testing.com/  (免费领测试技术资料,数量有限,先填先得~)  在使用JMeter的时候,由于单机的并发经常性的不能满足最大压力的需求,需要多台机器同时压力测试。  在JMeter中使用的应用进场景如下:用一台机器(称为JMeter客户端)上的jmeter同时启动另外几台机器(称为JMeter远程服务器)上的jmeter。  前提条件:  1.保证jmeter客户端和jmeter远程服务器采用相同版本的jmeter和JVM。  2.jmeter客户端和jmeter远程服务器最好在...
            0 0 767
            分享
          • 管理的定义在我理解,管理,是管理者带领一群人一起完成一个共同目标的过程。在这个过程中,如何将团体目标最好的完成,如何将团体与个人的利益进行有效的协调,如何将团体中的每个人的价值最大化,都是作为管理者需要去思考的。管理的内容带领,就是要在团队中发挥带领者的角色。一个好的管理者,会和团队一起冲锋陷阵,在完成目标的路上身先士卒,以身作则,不畏惧不退缩。有困难,他会和团队一起并肩面对;有问题,他会首先反思其中的原因;有疑问,他会和团队分享自己的不解;有想法,他会开诚布公畅所欲言。带领团队的过程中,有被质疑时独当一面,不会将责任甩给团队;和其他团队合作遇到阻碍时,敢于站在团队前面,而不是如缩头乌龟一般让...
            1 2 2362
            分享
          •   Selenium是一个用于自动化Web浏览器的Python库。它提供了一组强大的工具和API,使开发者能够以编程方式控制浏览器的行为,模拟用户与网页的交互。  Selenium可以用于各种Web自动化任务,包括网页测试、数据采集、UI自动化等。它支持主流的Web浏览器,如Chrome、Firefox、Safari等,并提供了丰富的功能,例如:  页面导航:Selenium可以模拟用户在浏览器中输入URL或点击链接来导航到不同的网页。  元素定位和操作:开发者可以使用Selenium定位页面上的元素,例如文本框、按钮、下拉菜单等,并进行点击、输入文本、提交表单等操作。  页面截图:Selen...
            0 0 1231
            分享
          •   欧盟委员会今天宣布,将对苹果、Google和 Meta 如何遵守其新的《数字市场法》反垄断规则展开五项违规调查。欧盟反垄断主管玛格丽特-维斯塔格(Margrethe Vestager)在一份声明中说:"我们怀疑这三家公司提出的解决方案并不完全符合《数字市场法》。我们现在将调查这些公司是否合法,以确保欧洲数字市场的开放性和可竞争性"。"  特别是,委员会计划调查Google和苹果在其应用商店中的反转向规则,以及Google是否在其搜索引擎中自我引用了自己的服务。苹果公司的 iOS 浏览器选择屏幕以及 Meta 公司的广告定向"付费或同意模式"...
            0 0 702
            分享
          •   据报道,当地时间周四,谷歌宣布,将在其加拿大平台上封锁加拿大新闻。在此之前,Facebook也采取了类似的措施,以此对抗该国强制要求互联网平台向当地新闻机构付费的新规。  当该法律大约6个月后生效时,谷歌将在其加拿大搜索结果及其他产品中删除指向加拿大新闻的网络链接。  Facebook母公司Meta上周也宣布了类似的声明,以此抗议加拿大刚刚通过的C-18法案,即《在线新闻法案》。  加拿大媒体行业呼吁对互联网巨头加强监管,以使新闻机构能够挽回多年来因为Facebook和谷歌等在广告市场攻城拔寨而遭受的损失。  加拿大独立预算监管机构去年估计,新闻企业每年可以从该法律强制的交易中获得3.3亿...
            0 0 1223
            分享
      • 51testing软件测试圈微信