系列文章

  1. 微信公众号数据采样试验
  2. mitmproxy实时数据处理
  3. appium对手机微信的自动化测试
  4. winAppDriver对桌面微信的自动化测试
  5. 场景文字识别的快速调研
  6. UI Automation对桌面微信的自动化测试
  7. 基于机器视觉的桌面窗体组件的目标检测.notFinished

技术路线

我们采用抓包的方式, 通过截获网络传输数据, 实现对微信公众号内容的爬取. 而启动该过程的前提条件就是激活PC端的微信客户端, 这需要借助于自动化测试工具.

自动化测试工具

根据测试对象种类的不同, UI自动化测试测试工具大致可以分为三类 [1] :

  1. App端: Appium、Airtest、AutoJS.
  2. Web端: Selenium、Puppeteer、Cypress.
  3. 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对比, 可以参见下图:

微信公众号的数据采样与试验-mitmproxy与Fiddler、Charles对比.webp

搞定了自动化测试工具、抓包工具后, 剩下的都是常规工作了. 下面我将首先开展微信PC客户端的抓包实验, 用手动浏览微信公众号的方式激活数据. 这项工作的主要目的在于走通”PC端软件的数据抓包”的技术. 考虑到mitmproxy的部署、使用、编程等涉及较多的步骤, 因此决定单开一篇文章.

参考与注释