啊!啊!啊!搜狗微信不能爬了!怎么办???
没事,往下看。
这样的话,我们就没有办法准确的搜索到某个公众号的最新的文章了,所以我们要是想要去实时追踪到某个公众号的最新文章的话,就不能通过搜狗这个渠道来爬取了。
于是,我整理了一下截止目前的微信公众号的爬取方式
比较一下这几种方式
第二种的话使用模拟人工操作的自动化工具,的话可以替换成,也就是做一个的作用,具体的话可以看看陈文管的博客来看看具体操作,不过中间人拦截在层面总会有些隐患。
第三种的话在业界统称为,也就是像公众号文章点赞、阅读什么的都需要通过这个来进行操作,所以一些黑产(刷赞、刷阅读量)什么的都喜欢拿这个东西搞,获取的话无非就是逆向重写源码逻辑或者拿,这个目前市面上暂时没有相关的文章。
最后一种就是我们今天要采取的方式了,就是微信的公众号推送,因为逻辑上公众号推送也是微信官方向我们发送消息的过程,我们可以这个过程,每当收到推送我们就采取我们自己的一些处理逻辑,这样在设计上来说是四种中最“实时”的。
讲一个常识,像微信这种社交类的,我们和对方在发消息的过程中的聊天记录都是会保存在我们本地,所以我们通常都能看到我们的聊天记录,也可以清理他们,所以如果我们想要拦截微信的消息的话,就得微信的方法,也就是他们插入数据库的方法。
那我们该从哪里入手呢?相信大家百度搜索的时候都会搜到一类内容,就是如何解密微信本地的数据库,而微信在我们手机上的存储位置又有一个关键词--,这个就是我们的入口,我们需要在微信源码中全文搜索这个词,我们使用的微信是,工具是,实际操作如下
我们查看这一段代码,看到下面这个部分有我们之前拦截到的消息的参数
不出我们的猜想,这个方法果然是,我们再进行解析,得到如图的效果。 总结 这次算是比较简单的案例,主要是寻找方法的思路,把微信公众号的推送当成一个消息,我们去这个消息存入数据库的过程从而得到原生数据,再找到原生数据解密的地方,从而通过原生数据解密的方法得到正确的解码数据,最后完成我们的实时获取微信公众号推送的目的。 坑点
代码只是完成了功能,在额外的微信风控部分、Xposed检测部分估计还需要做额外工作。
项目基于手机微信来开发,需要保持手机常开,稳定性需要额外考虑。