如何抓取微信小程序的数据?

2017年1月份备受关注的微信小程序功能正式上线了,好多知名平台纷纷推出了自己的微信小程序,例如大众点评、美团外卖、京东购物。对于我们爬虫开发者来说这绝对是好事情,意味着又多了一个数据来源,又多了一种选择。
用过微信小程序的人都知道无论是从界面上看还是从功能上看都和普通的手机App并没有什么差别。那么客户端与服务端数据交互的方式是否也一样呢?从微信小程序开发文档上了解到,产品模式下微信小程序强制要求客户端和服务端通过HTTPS协议进行交互(传统的手机App并没有这种限制),而不允许不安全的HTTP。这就意味着如果直接抓包(例如,使用Wireshark),我们看到的也是一堆乱码(HTTPS数据是加密传输的),无法了解交互的接口和过程。然而这一点并不难突破。
之前曾介绍过Web协议调试神器Fiddler,它最强大的地方就是能够抓取并明文展示HTTPS报文。它抓取HTTPS的原理是这样的,首先Fiddler是以HTTPS代理模式工作的,当Fiddler接收到客户端(浏览器)CONNECT请求时,它冒充服务端(网站)接受客户端的请求,并回送客户端一个伪造的证书,并冒充客户端(浏览器)和真实的服务端(网站)建立连接,之后它就充当一个中间人的角色,向服务端(网站)转发客户端(浏览器)的请求数据,向客户端(浏览器)转发服务端(网站) 的应答数据。对于这个中间人来说两边的请都是和其直接建立的,所以两边发送的数据它都能解密成明文。
下面以“京东购物”微信小程序为例,介绍如何分析、抓取一个微信小程序的数据:
1)安装Fiddler4,启用HTTPS抓取。并允许远程连接。
在这里插入图片描述
2)手机Wifi确保和安装Fiddler的机器在一个局域网内。并在手机Wifi里设置好Fiddler代理。
3)在微信中搜索“京东购物”,进入该小程序。
4)操作小程序,不出意外的话,就能看到Fiddler抓到的数据包。如下图所示。
在这里插入图片描述
5)有过手机App抓包经验的开发者会发现这个微信小程序的抓包分析过程其实和手机App的抓包分析过程完全一样。技术人员分析了几个微信小程序,发现目前微信小程序的数据基本上都没有做什么有效的防护策略(例如 签名机制),意味着一旦我们分析到数据接口(URL和参数)就可以轻易拿到我们想要的数据。例如京东购物的商品详情接口,我们只需要修改其中的商品ID参数,就可以拿到不同商品详情信息(标题、价格、规格、参数、评论、卖家信息),如下图所示。
在这里插入图片描述
相信在不就的将来各厂商会意识到这个问题并加强对数据的保护,就像传统的手机App一样。总之,各位:“欲抓从速!”

了解更多分析及数据抓取可查看:
http://cloud.yisurvey.com:9081/html/bfd0c1a1-ea90-4ed6-9a2c-1da4cd72391c.html
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。

Fiddler是一个流行的网络调试工具,常用于抓取HTTP和HTTPS流量,帮助开发者理解和调试Web应用。在抓取微信小程序数据时,由于微信小程序采用了特殊的通信协议(如WXML, WXSS, JavaScript Bundle等)和加密机制,直接使用Fiddler可能会遇到一些挑战: 1. **跨域限制**:微信小程序默认是不允许跨域请求的,你需要配置微信开发者工具的“安全域名”设置,才能允许特定域名的请求被Fiddler截获。 2. **加密处理**:微信提供了自家的加密套件,如TLS 1.3和随机数生成,这可能使Fiddler难以直接解析响应内容,你可能需要解密工具或者了解微信的安全策略。 3. **特殊接口**:微信小程序数据请求可能通过微信提供的API或者其他自定义接口,这些接口通常是隐藏的或有权限限制,Fiddler可能无法直接跟踪。 4. **调试工具**:微信提供了微信开发者工具,其中内置了调试网络的能力,你可以尝试在开发工具中查看和调试小程序的数据交互。 **步骤概述**: - 配置微信开发者工具:确保你已经设置了正确的安全域名,并开启调试模式。 - 使用微信开发者工具的网络面板:在模拟器或真机上查看小程序的数据请求。 - 如果需要抓取,可以在开发者工具的请求日志中找到相关请求,然后在Fiddler中设置代理服务器(比如127.0.0.1:8888)来拦截并分析请求。 **相关问题**: 1. 如何在微信开发者工具中设置安全域名? 2. 微信小程序的加密套件具体是什么? 3. Fiddler如何设置代理服务器来拦截微信请求?
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值