基于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核心知识点的汇编和采访礼品包!还有更多的技术干货文章和相关信息共享,让我们一起学习并取得进步!