微信公众号采集方案

引言

目前微信公众号采集基本只有几种特定的方法了json

  1. 搜狗微信
    没法采集历史了,并且搜索也不按时间排序。获取的数据的价值不高,不过能够经过他来获取公众号的biz。
    浏览器

  2. 微信公众平台
    微信公众平台虽然可采集历史,但限制很大,没抓多少就被封接口了。
    服务器

  3. 安卓端微信
    网上不少关于xposed hook微信公众号实时推送文章的一些采集方案,这个能用。可是只能使用旧版微信,新版微信对xposed有检测。并且旧版微信会限制刚注册的微信号登录。不过有方法解决:hook掉检测的代码,目前我还作不到这个程度。我见过有大佬实现了成品,但价格劝退。
    微信

  4. 一些第三方的平台
    有不少第三方的平台会提供一些微信的数据,好比最热文章等。可看需求是否抓取。
    微信公众平台

  5. 网页端微信
    基本没啥用,大部分帐号登不了,登上去采集不了多久也分分钟给你封了
    ide

  6. Windows端微信
    可逆向hook 注入dll来采集。还有一种方法就是拦截修改响应体,并加入相应js来采集(好比间隔一段时间来打开下一个文章)。也可模拟自动化点击操做微信,而后用一些拦截工具拦截到微信的包就能够实现抓取。技术简单但实现较繁琐,且效率较低。且机器的数量需求很大,但配置只需Windows,其余配置能够很低。
    工具

正文

微信的采集难度对刚接触的人来讲不简单,由于大佬掌握的技术根本不会直接公开出来。要么高价定制产品给其余人,要么卖数据。这也很正常,由于知道的人越多,掌握的采集技术不值钱是其次,能用多久就成问题了,万一放出来没多久就被微信针对了呢。测试

我接触微信采集也有小半年了,尝试过不少方法,最终找到一个还能够接受的采集方法。spa

功能(全部功能都是基于Windows端微信,也就是你在电脑上聊天的那个软件)

  • 可实时监控公众号的推送,即公众号新发布的文章。偏差在10秒之内。
  • 能够采集公众号的历史文章(非模拟点击拦截)
  • 能够不关注采集公众号最近10天发布的文章
  • 能够采集文章的内容、评论和阅读数等(经过这种方法采集的阅读数有限,大概每一个号天天有两三千次,后面能够继续经过模拟点击来采集,也能够直接更换IP)
  • 能够经过微信消息调度采集历史和文章(监控某个联系人的消息,当收到指定格式(json字典)的内容的,启动相应采集程序)
  • 能够读取微信关注的公众号列表(不包含biz字段)
  • 固然,模拟点击我也实现了。不是基于屏幕坐标,是基于控件句柄和屏幕搜图,因此在任何分辨率的电脑运行应该都没问题(目前还在测试阶段)
  • 每一个电脑能够实现多开微信来抓取(测试2-3个号不会有问题,基本都是两个号,部分机器登了三个号)

技术

  • 监控公众号的推送是经过hook Windows端微信实现的,即拦截微信软件接受微信服务器消息的代码段。
  • 历史和文章等的采集则是控制微信浏览器来实现的,用的不是操做鼠标键盘,不过其中部分功能实现须要模拟鼠标键盘。好比第一次启动微信浏览器。
  • 微信消息调度也是经过hook Windows端微信实现的,固然我也弄过微信机器人,可经过代码收发消息。

其余

技术太复杂学不会怎么办?我已经将全部功能封装成exe,只须要操做界面就能够采集微信文章(须要懂得基础的东西,好比json和网页解析),解析须要你本身写,由于我不知道你须要哪些字段。采集软件不到2M,占用资源很小,只要电脑配置足够运行微信都没问题。另外,若是须要本身二次封装扩展功能的话,能够提供代码和指导。若是只是想要数据的话也行。代理

演示

阅读数

演示图(图中监控帐号就是个人,欢迎添加交流)
WinServer2016测试图
演示动图
视频太大,上传不了,就简单转个动图看看:https://wwx.lanzoux.com/iRUrdhru06f。动图中有三个窗口,左边的是微信浏览器,右上的是采集程序,右下的是任务栏,任务栏中显示的WXSpider就是右上的采集程序,放在里面只是为了展现一下程序占用的资源。


监控推送

程序中监控是指要监控哪一个微信好友的消息,当收到该好友指定格式消息时,开启采集程序采集相应内容。设置是设置邮箱发送的一些信息,当微信意外退出登陆时会发邮件通知。
在这里插入图片描述

历史

历史和阅读数相似,都是控制微信浏览器访问指定URL,而后获得参数,在请求历史文章列表。就不放动图了。

其余

直接控制浏览器来采集效率确实高了,也方便了不少。可是请求量是有限制的,可经过换IP解决(IP质量要好,我试了一些代理微信浏览器打开网页很慢)。而限制最低的方法就是模拟点击加拦截了,因此我加了一个模拟点击打开URL的功能,当程序达到限制时,依旧能够经过模拟点击来继续采集阅读数。固然历史文章接口的限制更高,封接口的频率也高,因此没法经过模拟点击突破。测试大概每一个帐号24小时内能够访问320-330次接口,每次接口返回10天的历史数据,无论天天发了几条,天天发了8条,则每一个接口返回80条文章数据。

舒适提示

若是你不是工做须要,只是想学技术的话,请勿打扰。固然,有钱能够随意。

相关文章
相关标签/搜索