微信公众号数据采样试验
系列文章
- 微信公众号数据采样试验
- mitmproxy实时数据处理
- appium对手机微信的自动化测试
- winAppDriver对桌面微信的自动化测试
- 场景文字识别的快速调研
- UI Automation对桌面微信的自动化测试
- 基于机器视觉的桌面窗体组件的目标检测.notFinished
技术路线
我们采用抓包的方式, 通过截获网络传输数据, 实现对微信公众号内容的爬取. 而启动该过程的前提条件就是激活PC端的微信客户端, 这需要借助于自动化测试工具.
自动化测试工具
根据测试对象种类的不同, UI自动化测试测试工具大致可以分为三类 [1] :
- App端: Appium、Airtest、AutoJS.
- Web端: Selenium、Puppeteer、Cypress.
- PC端: WinAppDriver、Pywinauto[2].
在选择自动化测试工具时, 我更看重软件的易用性、普适性、兼容性. 在上述的”三端”中: Appium-Selenium-WinAppDriver
或多或少都以Appium
作为基础平台; 而且使用者比较多, 其可靠性经过了广泛地验证, 目前都还在活跃地开发中. 因此, 在”三段”中, 选择Appium-Selenium-WinAppDriver作为各类平台下的自动化测试工具.
抓包工具
抓包工具目前用的较为普遍的包括: mitmproxy、Charles、Fiddler、Wireshark等 [3] .
wireshark想必大多数程序员都不会陌生. wireshark在各个平台都可以安装使用, 它可以抓取经过指定网卡的所有协议. wireshark虽然很强大, 但是对初学者其实不是很友好.
Charles是一款http抓包工具, 它是通过代理来实现的抓包. 也就是我们在访问网页时需要配置代理, 将代理指向Charles监听的端口, 之后我们的http请求都会发向Charles的端口, 之后Charles会帮我们转发并记录协议内容. 缺点在于: 是收费的. 不能忍.
不装了, 我直接选择mitmproxy了. 首先我对这个抓包工具比较熟, 至于mitmproxy与Fiddler、Charles对比, 可以参见下图:
搞定了自动化测试工具、抓包工具后, 剩下的都是常规工作了. 下面我将首先开展微信PC客户端的抓包实验, 用手动浏览微信公众号的方式激活数据. 这项工作的主要目的在于走通”PC端软件的数据抓包”的技术. 考虑到mitmproxy的部署、使用、编程等涉及较多的步骤, 因此决定单开一篇文章.