专栏首页日常学python谈下微信小程序的抓取技巧

谈下微信小程序的抓取技巧

今天聊下微信小程序的抓取,其实小程序的抓取不难,主要解决抓包和如何调试小程序这两个问题。如果你运用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结尾的文件就是小程序前端代码被编译之后的形式。

你会看到很多个.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的命令,即可把小程序前端源代码还原了。类似下图这样的。

调试小程序

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

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

下载小程序开发者工具:

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

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

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

这就可以对该小程序做调试了,界面是不是很熟悉,是不是跟chrome浏览器的调试很相似。你可以点选sources面板,然后对js打断点,也可以在console里直接运行一段js代码。想要知道请求的URL是如何加密的,跟chrome一样,打断点调试即可。具体怎么打断点调试,我已在猿人学公众号上写了好几篇,你可以回头再去看看。

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

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

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

PS:上述对.wxapkg文件解包,还有一些小细节我没有全部写出来,诸如运行解包程序报错,还有解分包的问题。这些很琐碎,偏离了主题。感兴趣的可以自行搜索。

END

本文分享自微信公众号 - 日常学python(daily_learn)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 厉害了,用Python实现自动扫雷

    自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。

    sergiojune
  • 20行代码制作字符画版小黄鸭表情包 | 文末送书抽奖结果

    前段时间,一只可爱的小黄鸭火起来了,据说是抖音上一位黄衣小姐姐模仿小黄鸭的动作而走红。这只动作呆萌的小黄鸭表情包也跟着火起来了,小黄鸭表情包也由一只变成多只,颜...

    sergiojune
  • 别让自己变为一个废掉的程序猿

    有人说是无所事事,终日啃老;有人说是沉溺游戏,卧床不起;可你有没有想过,或许下一个废掉的人,刚好是看似勤奋忙碌的你。

    sergiojune
  • 【收】精心整理!小程序开发资源汇总(附带源码)

    ? 很多小伙伴想在春节放假期间学小程序,但是小程序学习的资源和教程可能不太好找。所以小助手精心整理了一期,全是干货!认真学,开启美妙的小程序开发之旅,做一个属...

    腾讯大讲堂
  • 微信升级,小程序曝光能力大大提升,未来将血染小程序蓝海

    “为了帮助用户更便捷地使用小程序,微信在主界面新增了小程序任务栏的功能。小程序菜单进行了升级,并提供小程序间快速切换的功能。同时,我们开放了小游戏开发文档和开发...

    企鹅号小编
  • 马化腾在小程序首次获选世界互联网领先科技成果奖发表演讲

    昨日小程序斩获一项世界级殊荣——在乌镇举行的第五届世界互联网大会“世界互联网领先科技成果发布活动”上,作为一项全新的技术和应用创新,小程序首次获选世界互联网领先...

    ytkah
  • 微信小程序入门(五)

    热启动:假入用户已经打开某个小程序,然后在一定时间内再次打开小程序,这个时候,就不需要重新启动了,只需要把后台小程序切换到前台来使用,这个过程就叫做热启动。

    zhang_derek
  • 小程序上线 100 天,知晓程序负责人最爱用哪些小程序?

    这篇内部约稿,本来是小程序 100 天当日发的。没想到,微信接连几天都在开放小程序新能力,只能一推再推。

    知晓君
  • 微信小程序是什么,怎么用?

    什么是微信小程序 小程序种需安装即使用手机「应用」需要扫描二维码或搜搜能立即使用解决手机内存够问题 不同的小程序能帮实现同功能例买电影票、餐厅排号、餐馆点菜、查...

    企鹅号小编
  • 如何用多端合一系统实现小程序开发

    如何用多端合一系统实现小程序开发。昨天写了一篇如何在附近人交友得到更多异性关注的推文。今天被好多朋友喷。基本语调就是问我:文哥一看你就没约过,哪有你想的那...

    成都多享信息

扫码关注云+社区

领取腾讯云代金券