前言
由于公司业务需求,需要获取客户提供的微信公众号的历史文章并每天进行更新,三百多个公众号显然不能通过人工去每天查看,问题提交到了IT组。对于热爱爬虫的我肯定要盘他,之前做过搜狗的微信爬虫,后来一直致力于java web了,这个项目又重新燃起了我对爬虫的热爱,第一次使用spring cloud架构来做爬虫,历时二十多天,终于搞定。接下来,我将通过一系列文章来分享此次项目经历,并奉上源码供大家指正!
一、系统简介
本系统是基于Java开发,可通过简单配置公众号名称或微信号,实现定时或即时抓取微信公众号的文章(包括阅读量、点赞、在看)。
二、系统架构
技术架构
Spring Cloud、SpringBoot、Mybatis-Plus、Nacos、RocketMq、nginx
存储
Mysql、MongoDB、Redis、Solr
缓存
Redis
代理
Fiddler
三、系统优劣性
系统优点
1、配置完公众号后可通过Fiddler的JS注入功能和Websocket实现全自动抓取; 2、系统为分布式架构,具有高可用性; 3、RocketMq消息队列进行解耦,可解决网络抖动导致采集失败情况,若消费三次还未成功则将日志记录到mysql,确保文章的完整性; 4、可加入任意多个微信号提高采集效率和抵抗反爬限制; 5、Redis缓存了每个微信号24小时内采集记录,防止封号; 6、Nacos作为配置中心,可通过热配置实时调整采集频率; 7、将采集到的数据存储到Solr集群,提高检索速度; 8