基于Java开发的springcloud架构来做爬虫,历时二十多天

优采云 发布时间: 2021-05-02 07:07

  基于Java开发的springcloud架构来做爬虫,历时二十多天

  前言

  由于公司业务需求,有必要获取客户提供的微信公众号的历史记录文章,并每天进行更新。显然,每天不能手动检查300多个正式帐户。问题将提交给IT团队。对于那些喜欢爬虫的人,我绝对想要他。我以前使用过Sogou的WeChat采集器,然后一直在Java Web上工作。这个项目重新燃起了我对履带的热爱。这是第一次使用Spring Cloud体系结构来进行爬虫。最终花了20多天才完成。接下来,我将通过一系列文章分享项目经验,并提供用于更正的源代码!

  一、系统简介

  该系统基于Java开发。通过简单配置官方帐户名称或微信帐户,可以定期或实时捕获微信官方帐户的文章(包括阅读,喜欢和观看)。

  二、系统架构技术架构

  Spring Cloud,SpringBoot,Mybatis-Plus,Nacos,RocketMq,nginx

  存储

  Mysql,MongoDB,Redis,Solr

  缓存

  Redis

  代理

  提琴手

  三、系统的优点和缺点系统的优点

  1、配置官方帐户后,可以使用Fiddler的JS注入功能和Websocket来实现自动爬网; 2、该系统是具有高可用性的分布式体系结构; 3、 RocketMq消息队列可以解耦。解决由于网络抖动导致的采集故障问题。如果三次使用均不成功,则登录到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工具类。

  rocketmq-ws-starter

  RocketMq模块:rocketmq-spring-boot-starter的辅助封装,提供消耗重试和记录故障日志功能。

  db-ws-starter

  mysql数据源模块:封装mysql数据源,支持多个数据源,并自定义注释以实现数据源的动态切换。

  sql-wx-spider

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

  pc-wx-spider

  PC终端采集模块:收录与PC终端采集官方帐户历史记录信息相关的功能。

  java-wx-spider

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

  mobile-wx-spider

  模拟器采集模块:收录与通过模拟器或手机采集消息进行的交互量有关的功能。

  五、一般流程图

  

  六、运行PC和移动终端的屏幕截图

  

  

  控制面板

  

  

  操作结束

  

  摘要

  该项目的亲测功能正在运行中,与搜狗永久链接的微信临时链接已在项目开发中得以解决,希望能为遭受类似生意困扰的老铁提供帮助。如今,使用Java就像逆流而上。如果你不前进,你就会退缩。我不知道你什么时候参与。我希望每个人都有自己的向日葵采集。如果看到这个,就不给它采集吗?

  原创链接:

  如果您认为本文对您有所帮助,则可以遵循我的官方帐户,并回复关键字[Interview],以获取Java核心知识点的汇编和采访礼品包!还有更多的技术干货文章和相关信息共享,让我们一起学习并取得进步!

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线