用 Charles 玩转微信小程序:抓取摩拜、OFO以及车来了数据

最近沉迷于用 Charles 做代理抓手机的数据。

关于如何使用 Charles 来做为手机的代理进行抓 HTTP/HTTPS 请求,这里有一篇非常详细的图文教程:

http://www.jianshu.com/p/5539599c7a25

另外对于 iOS 11 及以上的手机,还需要按照下面这篇文章来进行设置,否则无法正常抓到 HTTPS 请求 ( 其实还是有某些 APP 的 HTTPS 数据是不能被抓到,或是抓到的是加密的数据 ):

http://www.jianshu.com/p/4005cf4f370d

如果一切正常,我们就可以愉快地玩耍了。

在这篇文章里,我们抓几个微信小程序来玩玩。

公交到站提示

几年前我曾在一个山旮旯工作,公交比较不准时,下去早了等着无聊,下去晚了又怕错过。后来在网上找到一个实时公交的接口,写个脚本判断公交快到了再下楼,愉快地解决了这个问题。

当时的接口现在已经不能用了,不过我们可以用 车来了 这个小程序应用。

把手机连到 Charles proxy,在手机上使用,我们就能在 Charles 上抓到相应的 HTTPS 请求:

从 url 就很容易可以看出这个请求就是获取公交线路到站的详细信息的。

是线路 id,比如 020-04960-1 就是 广州 的 496 路,后面的 1 是表示往某个方向的;

指你在第几个站;

和是 GEO 信息;

其他参数看字面意思就行,这里我马赛克了部分个人信息。

请求的结果:

我们只需要这里的 desc 文本就可以了:

用一条 grep 命令:

即可过滤出来。

整个脚本其实只有两行 curl 命令、一个 grep 以及一个 if 判断。

设好定时任务,就能收到公交到站提示了:

PS:类似这种实时提示,还有 实时空气质量 之类的小程序,都是可以像上面这样去实现,非常简单。

摩拜单车热点图

相信很多同学都使用过共享单车。摩拜单车小程序也是比较好抓,正常使用登录后,可以看到这个请求:

可以看到这个请求返回了附近的摩拜单车的信息,包括单车的 id,位置 ( distX, distY ),单车离你的距离,单车的类型等。

提交的参数:

header 里需要有:

mobileNo 这是你的手机号码

time 测试过没有影响,固定一个即可

accesstoken, userid, wxcode 个人相关的信息

citycode 城市代码

其他的参数可以不变

POST 参数:

longitude, latitude 你当前的 GEO 地址

altitude 海拔,貌似不太重要,可以不变

wxcode 个人信息,跟 header 里的一致

citycode 城市代码,跟 header 里的一致

其他的参数可以不变

然后定义一个扫描函数,给定左上角和右下角两个点,对一个长方形范围进行扫描抓取,步长我设为 0.001 :

抓取完后可用 gmaps 展示出来,谷歌家的地图,不方便翻墙的同学也可以用其他地图接口:

最后设个定时任务,6点到22点间,每小时收集一次,以下就是随时间变化的摩拜单车热点图了:

ofo单车

抓完摩拜怎能不抓下 ofo 呢!

ofo 的请求比起 mobike 来说,参数更少一点:

对同一个地区进行扫描抓取,可以得到下面的热点图:

可以看到跟 mobike 的热点图是差不多的,符合现实情况。

Have Fun

本文来自企鹅号 - 脚本有意思媒体

发表于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏Android 开发者

Android 8.1 开发者预览版 —— 为 ML 机器学习做好准备的 Oreo 升级版

1844
来自专栏崔庆才的专栏

你的 Mac 用对了吗?推荐一些 Mac 上比较好用的软件

最近有一个朋友刚入手了 Mac,准备专门搞开发用,让我给他推荐几款软件,然后我就把我的 Launchpad 截图发给了他,他看到这密密麻麻的软件完全不知所措,如...

1120
来自专栏我就是马云飞

APK瘦身全面总结——如何从32.6M到13.6M

前言 之前我简单介绍了关于svg图片瘦身的问题,在公司,瘦身这个问题是我提出来的,所以这锅我背了。公司项目是32.6M,我给自己的要求就是低于20M。上周花了一...

1726
来自专栏小白课代表

Easy Paint Tool SAI (1和2)下载安装教程。

Easy Paint Tool SAI是SYSTEMAX公司发行的一款商业化的绘图软件,也是很多大触的必备软件之一。

871
来自专栏FreeBuf

那些年我们“投(shua)”过的票

最近朋友圈中时不时有人要帮忙投个票啥的,又想起N年前,那时候刚开始学习渗透测试,并且自学java的时候,为了学习代码的同时能够更好的用于实战,想找一些事来做一做...

1878
来自专栏北京马哥教育

使用版本控制系统的 3 个建议

git的三个建议 如果说有什么是开发软体专案一定要使用的基础工具,使用「版本控制系统」应该可以记上一笔。无论是个人或是团队开发,都可以透过版本控制系统获得巨大的...

1896
来自专栏FreeBuf

周末娱乐:讲真,这才是我所说黑客的定义!

看到一篇挺好玩的文章,哈哈,翻译过来你们感受一下这geekstyle的魔性。 我一基友,在俄罗斯bash.org上po了一个帖子,贼6!所以我决定转一下,po到...

1755
来自专栏Web 开发

我也来刷到CM7.1

2011年10月10日,著名的的Android第三方ROM团队CyanogenMod发布了最新的稳定版CM7.1,同时提供大量机型的支持~

600
来自专栏小文博客

腾讯云OCR文字识别“测评”

前不久有朋友为了方便工作,问我“怎么把图片中的文字提取出来”,我当时就想到手机QQ扫一扫刚好可以实现这个功能,就让他先将图片传到手机,然后再用手机QQ扫一扫 。

6577
来自专栏前端架构

phpcms推荐管理实践总结

4.做好排序管理的规则。对网站各个栏目权重,从总体架构上,做好权重规则!(显然,这点本站,没有去做,随性而为!)

641

扫码关注云+社区