微信公众号采集的一点思路.

由于微信的端到端token机制,模仿客户端请求非常的困难.进行微信文章的爬虫和实时监控,只能通过微信客户端来操作.

基本思路

  • 1.通过代理服务器作为broker,介入微信客户端与服务器通信.
  • 2.通过向Response中注入js代码,实现自动跳转以及采集信息.
  • 3.通过代理服务器剔除Response中所有非必要内容,如图片,公众号文字内容,尽量压缩页面大小.使微信客户端专注于执行注入的js和自身的加密等.
  • 4.数据通过任意方式存入数据库.
  • 5.实现自动化,热重载.

自动化实现思路

自动化通过安卓手机adb驱动+python,必要时配合ocr 或者opencv进行图像定位识别,完成自动化搜索指定公众号,查看文章.
同一号码的采集工作需要得到公众号的所有文章url,之后通过页面注入的js来进行跳转.
在进行公众号间切换时可以选择python模拟操作进行搜索,或者通过js注入直接进入新公众号的文章列表页.
部分仅靠js无法完成的工作,则由python+adb来完成.

未验证的问题:

  • 微信的反爬虫机制目前并未深究,对于频率是否有限制仍不清楚.
    solution:如果有限制的话,思路中第三条的页面压缩则变得可有可无了.
  • 微信内置网页浏览器识别到公众号文章链接之后,是否针对性的限制了某些js执行.
    solution:这个是比较核心的功能,如果此项受限,那么整个流程的自动化跳转效率都会受到极大的影响,只能在response的body添加a标签,由python+adb模拟点击来实现跳转.当然了,如果上一条的反扒机制对于频率有限制,那么这么做也并不会影响太多的效率.
  • 接上条,Android在adb调试过程中,同一个terminal怎么来操作多个Android设备.
  • 性能OK,最好是足够轻量的安卓迷你器.

2018-1-15 夜挖坑,未完待填.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容