实时文章采集(爱爬虫的人,我肯定要演他!(一))

优采云 发布时间: 2022-03-31 06:19

  实时文章采集(爱爬虫的人,我肯定要演他!(一))

  前言

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

  一.系统介绍

  本系统是基于Java开发的。只需配置微信公众号名称或微信ID,即可定期或实时捕捉公众号上的文章(包括阅读量、点赞量、阅读量)。

  二、系统架构

  技术架构

  春云、Rebound、Mibatis-Plus、Nacos、RocketMq、nginx

  保存

  Mysql、MongoDB、Redis、Solr

  缓存

  评论

  机制

  小提琴家

  三、系统的优缺点

  系统优势

  1.微信公众号配置后,可以通过Fiddler和Websocket的JS注入功能自动捕获;2.系统为分布式架构,高可用;3.Rocket Mq消息队列解决方案Coupling可以解决网络抖动导致的采集失败。如果3次消费不成功,会在mysql中记录日志,保证文章的完整性;4.可以添加任意数量的微信号,提高采集的效率,抵抗反爬限制;5.Redis缓存每个微信24小时内采集到的记录,防止上头条;6.Nacos作为配置中心,可以通过热配置实时调整采集的频率;< @7.将采集到的数据存储在 Solr 集群中,用于更快的检索;8.将捕获数据包返回的记录存储在 MongoDB 存档中以查看错误日志。

  系统缺点:

  1.从真实设备采集消息。如果需要采集大量微信公众号,需要有多个微信账号作为支撑(当日账号达到上限,可通过抓取微信公众平台界面获取消息);到达。采集时间是系统设定的,消息有一定的滞后性(如果微信公众号不多,可以通过增加采集的频率来优化微信账号数量)。

  四.模块介绍

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

  公共-ws-starter

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

  redis-ws-starter

  Redis 模块:

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

  rockemq-ws-starter

  Rocket Mq 模块:用于

  Rocket MQ-spring-boot-starter的二次包,提供消费重试和失败日志功能。

  db-ws-starter

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

  sql-wx-蜘蛛

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

  pc-wx-蜘蛛

  PC端采集模块:包括微信公众号历史消息PC端采集的相关功能。

  java-wx-蜘蛛

  Java 提取模块:收录与从 Java 程序中提取 文章 内容相关的函数。

  移动 wx 蜘蛛

  模拟器采集模块:包括通过模拟器或手机采集进行信息交互相关的功能。

  Verb(动词的缩写)通用流程图

  

  六、运行截图

  个人电脑和手机

  

  

  安慰

  

  

  

  运行结束

  

  总结

  项目的亲测现已投入运行,在项目开发中解决了微信在搜狗上的临时链接到永久链接的问题。希望对被类似业务困扰的老铁有所帮助。现在,做java就像逆水行舟。不进则退。不知道什么时候会涉及。我希望每个人都有自己的向日葵系列。看到这个你不喜欢吗?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线