微信公众号采集方案

   日期:2020-11-04     浏览:90    评论:0    
核心提示:引言目前微信公众号采集基本只有几种特定的方法了搜狗微信无法采集历史了,而且搜索也不按时间排序。获取的数据的价值不高,不过可以通过他来获取公众号的biz。微信公众平台微信公众平台虽然可采集历史,但限制很大,没抓多少就被封接口了。安卓端微信网上很多关于xposed hook微信公众号实时推送文章的一些采集方案,这个能用。但是只能使用旧版微信,新版微信对xposed有检测。而且旧版微信会限制刚注册的微信号登陆。不过有方法解决:hook掉检测的代码,目前我还做不到这个程度。我见过有大佬实现

引言

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

  1. 搜狗微信
    无法采集历史了,而且搜索也不按时间排序。获取的数据的价值不高,不过可以通过他来获取公众号的biz。

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

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

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

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

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

正文

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

我接触微信采集也有小半年了,尝试过很多方法,最终找到一个还可以接受的采集方法。

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

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

技术

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

其他

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

演示

阅读数

演示图(图中监控账号就是我的,欢迎添加交流)

演示动图
视频太大,上传不了,就简单转个动图看看:https://wwx.lanzoux.com/iRUrdhru06f。动图中有三个窗口,左边的是微信浏览器,右上的是采集程序,右下的是任务栏,任务栏中显示的WXSpider就是右上的采集程序,放在里面只是为了展示一下程序占用的资源。

监控推送

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

历史

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

其他

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

温馨提示

如果你不是工作需要,只是想学技术的话,请勿打扰。当然,有钱可以随意。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服