文章自动采集自动发布( 第一次使用springcloud架构来做爬虫,历时二十多天终于搞定)

优采云 发布时间: 2022-03-26 02:16

  文章自动采集自动发布(

第一次使用springcloud架构来做爬虫,历时二十多天终于搞定)

  基于Spring Cloud的全自动微信公众号消息采集系统

  文章目录

  前言

  因公司业务需要,需要获取客户提供的微信公众号历史文章,并每天更新。很明显,每天人工检查300多个公众号是不行的,把问题提交给IT团队。对于那些喜欢爬虫的人,我一定会尝试他。之前做过搜狗的微信爬虫,后来一直在做java web。这个项目重新点燃了我对爬虫的热爱。第一次使用spring cloud架构做爬虫。20多天后,终于搞定了。接下来我将通过一系列文章分享这个项目的经验,并提供源码供大家指正!

  一、系统介绍

  本系统是基于Java开发的。只需简单配置公众号或微信公众号的名称,即可定时或即时抓取微信公众号的文章(包括阅读次数、点赞次数、观看次数)。

  二、系统架构技术架构

  Spring Cloud、Spring Boot、Mybatis-Plus、Nacos、RocketMq、nginx

  贮存

  Mysql、MongoDB、Redis、Solr

  缓存

  雷迪斯

  演戏

  提琴手

  三、系统优缺点系统优势

  1、配置公众号后,可以通过Fiddler的JS注入功能和Websocket实现自动爬取;

  2、系统为分布式架构,高可用;

  RocketMq消息队列的3、解耦可以解决网络抖动导致的采集失败。如果3次消费都没有成功,日志会记录到mysql,保证文章的完整性;

  4、可以添加任意数量的微信号,提高采集效率,抵抗反爬限制;

  5、Redis缓存每个微信账号24小时内的采集记录,防止账号被封禁;

  6、Nacos作为配置中心,可以通过热配置实时调整采集的频率;

  7、将数据采集存储到Solr集群,提高检索速度;

  8、将抓包返回的记录保存到MongoDB存档,方便查看错误日志。

  系统缺点:

  1、通过真机真实账号采集消息,如果需要采集大量公众号,需要有多个微信账号作为支持(如果账号达到上限当天可以通过爬取界面爬取微信公众平台获取消息);

  2、不是公众号可以立即抢帖,采集时间是系统设定的,消息有一定的延迟(如果公众号不多,微信账号数量足够,可以增加采集频率优化)。

  四、模块介绍

  由于后面会添加管理系统和API调用功能,所以提前封装了一些功能。

  common-ws-starter

  公共模块:存储工具类、实体类等公共消息。

  redis-ws-starter

  Redis模块:spring-boot-starter-data-redis的二次封装,暴露了封装后的Redis工具类和Redisson工具类。

  火箭MQ-WS-启动器

  RocketMq模块:rocketmq-spring-boot-starter的二次封装,提供消费重试和记录失败日志的功能。

  db-ws-starter

  mysql数据源模块:封装mysql数据源,支持多数据源,通过自定义注解实现数据源的动态切换。

  sql-wx-蜘蛛

  mysql数据库模块:提供mysql数据库操作的所有功能。

  pc-wx-蜘蛛

  PC端采集模块:收录PC端采集公众号历史消息相关功能。

  java-wx-蜘蛛

  Java抽取模块:收录java程序抽取文章内容相关的功能。

  移动 wx 蜘蛛

  模拟器采集模块:收录通过模拟器或移动端采集消息交互量相关的功能。

  五、一般流程图

  

  六、运行截图 PC 和手机

  

  

  安慰

  

  

  

  运行结束

  

  总结

  该项目的亲测可用性现已投入运行,在项目开发中解决了微信搜狗临时链接到永久链接的问题,希望能帮助被类似业务困扰的老铁们。如今,做java就像逆水行舟。不进则退。我不知道你什么时候会参与进来。我希望每个人都有自己的向日葵采集。你不给这个采集吗?

  直接附上java后端源码:ws-spider

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线