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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 早就听过CPU火焰图的强大功能,也听过几个火焰图工具,今天终于开始尝试使用CPU火焰图生成工具。奈何由于各种原因,Intellij自带的火焰图插件并不能用,着实让人不快。故而找到一个async-profiler分析工具作为替代品。当时正在测试随机数性能的,所以就用了一个动态QPS模型的Case,学习了async-profiler的使用。很意外地发现了一个性能可以优化的地方。经过尝试,CPU使用率降低了0.24%,也算是第一个成果了。async-profiler这个工具安装和使用教程,可以网上搜一下,建议去Github仓库看看Wiki,这里我就不多说。Case code下面是Case的代码,用了...
            0 0 1010
            分享
          • 敏捷质量实践中提倡测试左移,测试人员要尽早介入需求阶段,越早越好。测试人员需要关注需求的有效性,以及在需求产生和传递的过程中,交付价值是否被准确的描述、理解和对齐。在这个过程中很容易遇到一个常见问题:验收标准是验收测试要测的吗?验收标准到底是不是测试用例?这两者之间有什么区别和联系?本文主要想解决的就是这个具体的困惑。验收标准是确保需求实现的最小集合验收标准是什么回顾一下需求由厚厚的《软件需求规格说明书》演化为一张用户故事卡片的过程,在这个过程中我们舍弃了大量的细节描述,突出了需求需要交付的客户/用户价值。在需求交付的过程中,我们会一直关注价值,在保证价值的前提下,实现方式和技术细节都是可以讨...
            0 0 1041
            分享
          • 新浪科技讯10月20日上午消息,小米公司创始人雷军在其Twitter上发文分享了其对电动汽车行业的一些看法。雷军表示,他认为电动汽车是一种以智能化、软件化和用户体验为核心的消费电子产品。汽车行业的本质将从机械演变为消费电子,市场份额高度集中于顶级玩家手中。雷军还表示,他相信,当电动汽车行业成熟时,世界前五大品牌将占据80%以上的市场份额。他称:“换句话说,我们成功的唯一途径是成为前五名之一,并且每年出货量超过1000万辆。竞争将是残酷的。”作者:佚名文章来源:新浪科技_新浪网 (sina.com.cn)
            0 0 1262
            分享
          • 1.界面测试界面布局、排版是否合理;文字是否显示清晰;不同卖家的商品是否区分明显。2.功能测试未登录时:将商品加入购物车,页面跳转到登录页面,登录成功后购物车数量增加;点击购物车菜单,页面跳转到登录页面。登录后:所有链接是否跳转正确;商品是否可以成功加入购物车;购物车商品总数是否有限制;商品总数是否正确;全选功能是否好用;删除功能是否好用;填写委托单功能是否好用;委托单中填写的价格是否正确显示;价格总计是否正确;商品文字太长时是否显示完整;店铺名字太长时是否显示完整;创新券商品是否打标;购物车中下架的商品是否有特殊标识;新加入购物车商品排序(添加购物车中存在店铺的商品和购物车中不存在店铺的商品...
            0 0 971
            分享
          •   今天,我们来聊聊如何成为一枚初级测试工程师?  最近经常收到小伙伴的私信问打算进入到互联网这个行业,如何转行软件测试?学测试难吗?以及谈到自己非计算机科班毕业,半路转行没什么经验,比较迷茫,不知道学习路线,以及需要学习哪些课程。甚至询问是否需要报个培训班学习,自学就可以吗,还是必须报班等问题。  首先我想说,初级软件测试学习和入门的门槛都是很低的,比起开发岗位来说,要容易得多,只要知道学习路线以及怎么学之后,自学是完全可以入行的。所以,今天就来跟大家探讨一下这个问题。  我浏览了 BOSS 直聘、拉勾网、猎聘网等招聘网站上目前关于初级测试工程师的招聘要求,以及薪水待遇等信息。以本人所在的城...
            0 0 869
            分享
      • 51testing软件测试圈微信