【工作记录】spider-flow使用插件连接并操作mongodb数据库

前言

前面说过,spider-flow有着非常优秀的插件机制,可以通过插件实现功能的扩展。前面有小伙伴问到mongodb的集成使用,本文就来梳理下spider-flow中使用mongodb插件的过程,其实非常简单。

PS:
spider-flow的作者已经实现了一些常用的插件,如redis、mongo、es、ocr等,开发和使用方式类似,再有其他需要可自行扩展。

使用过程

1. 引入依赖

这里提供两种方式:

  • 一种是通过下载源码,本地编译,在spider-flow-web中引入
<dependency>
    <groupId>org.spiderflow</groupId>
    <artifactId>spider-flow-mongo</artifactId>
</dependency>
  • 另外一种是在spider-flow-web中引入下载编译好的jar包

下载插件jar包并放入根目录下的lib目录下,下载地址: 点击下载插件jar包

引入方式略有差异:

<dependency>
    <groupId>org.spiderflow</groupId>
    <artifactId>spider-flow-mongo</artifactId>
    <version>0.5.0.v20231129</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/spider-flow-mongo-0.5.0.v20231129.jar</systemPath>
</dependency>

另外 需要在build的spring-boot-maven-plugin配置中添加配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>lib</directory>
            <targetPath>/BOOT-INF/lib/</targetPath>
            <includes>
                <include>**/*.jar</include>
            </includes>
        </resource>
    </resources>
</build>

再遇到问题可以先百度,解决不掉的可以留言。

2. spider-flow数据库执行如下sql
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `sp_mongo`;
CREATE TABLE `sp_mongo` (
    `id` varchar(32) NOT NULL,
    `name` varchar(64) DEFAULT NULL,
    `alias` varchar(32) DEFAULT NULL,
    `host` varchar(64) DEFAULT NULL,
    `port` int(6) DEFAULT NULL,
    `database` varchar(64) DEFAULT NULL,
    `username` varchar(32) DEFAULT NULL,
    `password` varchar(32) DEFAULT NULL,
    `create_date` datetime DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
3. 准备mongodb数据源

这个步骤是我自己搭建环境测试的步骤,如果已经有对应数据源,本步骤可忽略。

安装docker并执行如下命令:

docker run -it --restart always --net host --name mongo -d mongo

运行完成后使用如下命令查看日志:

docker logs -f mongo --tail 200

启动成功后执行如下命令进入容器:

docker exec -it mongo mongosh

创建collection及用户并完成用户授权

use aa;
db.createUser({user: 'root', pwd: '123456', 
    roles:[{role:"root",db:"admin"}]})

这样就可以使用root用户访问mongodb的aa数据库了。

其他关于mongodb的使用命令可自行百度完成,也欢迎留言讨论。

4. 启动spider-flow应用

正常启动后进入页面,会看到左侧菜单多出了一个Mongodbs数据源的菜单。

5.页面配置及测试
1. 配置数据源并测试通过

数据源配置及测试

2. 新增、查询测试

数据新增
数据查询

6. 插件已提供的部分语法说明
功能语法示例
新增${mongodb.aliasName.collectionName.insert({key : value})}
新增多条${mongodb.aliasName.collectionName.insert([{key : value},{key : value}])}
编辑${mongodb.aliasName.collectionName.update({key : oldValue},{key : newValue})}
编辑多条${mongodb.aliasName.collectionName.updateMany({key : oldValue},{key : newValue})}
删除${mongodb.aliasName.collectionName.remove({key : value})}
查询${mongodb.aliasName.collectionName.find({key : value}).list()}

源码简说

spiderflow的插件机制设计还是非常优秀的,扩展插件也非常容易。

对应文中mongodb插件代码结构如下:

插件结构

图中红色框起来的部分是为了完成mongodb数据源的增删改查操作的

其余的executor和extension结尾的类才是真正完成功能的。

其中MongoFunctionExecutor.java实现了FunctionExecutor接口,完成的是具体连接mongodb和对mongodb数据进行增删改查的方法,而MongoCollectionExtension.java实现了FunctionExtension接口,完成的是对外也就是爬虫页面上使用到的相关方法。

如果查看过其他插件源码的话,可以发现基本插件实现逻辑都是一致的,关键的接口也就是上面提到的FunctionExecutor接口 和 FunctionExtension接口,有兴趣的可以多研究研究源码,

如果有其他插件开发需求,也可以一起讨论完成,欢迎评论区留言。

总结

整体来说,拆件的使用流程还是非常清晰流畅的,引入依赖->添加相关配置->部署、应用、测试。

作为记录的同时也希望能帮助到需要的朋友。

针对以上内容有任何疑问或者建议,欢迎评论区留言讨论。

创作不易,欢迎一键三连。

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spider-Flow是一种基于Python的网络爬虫框架,允许用户非常方便地创建、调度和管理各种网络爬虫任务。通过Spider-Flow,用户可以定制自己的爬虫任务,快速地抓取和处理互联网上的数据。 Spider-Flow具有以下几个特点和功能: 1. 强大的可视化界面:Spider-Flow提供了一个直观且友好的可视化界面,用户可以通过拖拽、连接图形化组件来创建和管理爬虫任务,无需编写复杂的代码。 2. 多线程调度:Spider-Flow基于多线程技术,可以同时运行多个爬虫任务,提高爬取效率和速度。 3. 可扩展性:Spider-Flow支持插件式开发,用户可以根据自己的需求编写或安装插件,扩展框架的功能。 4. 数据清洗和处理:Spider-Flow提供了丰富的数据处理组件和函数库,用户可以对爬取到的数据进行清洗、筛选、转换等操作,方便地提取有用信息。 5. 数据导出和存储:Spider-Flow支持将爬取到的数据导出到多种格式,如CSV、Excel、数据库等,方便用户进行进一步的分析和使用Spider-Flow使用步骤如下: 1. 安装配置:首先,用户需要安装Python和Spider-Flow框架,并进行相应的配置。 2. 创建项目:在Spider-Flow界面中,用户可以创建一个新的爬虫项目,并设置相关的参数和配置。 3. 编辑爬虫任务:用户可以从组件库中选择需要的组件,然后将其拖拽到任务编辑区域,并设置相应的参数和连接。 4. 编辑数据处理:用户可以在爬虫任务完成后,通过添加数据处理组件来清洗和处理爬取到的数据。 5. 运行任务:设置好全部的任务和参数后,用户可以点击运行按钮,启动爬虫任务的执行。 6. 导出和存储数据:当爬虫任务完成后,用户可以选择将数据导出到指定的格式,或直接存储到数据库中。 总之,Spider-Flow是一种方便快捷的网络爬虫框架,用户可以通过简单的拖拽和配置,创建并管理自己的爬虫任务,并方便地处理和存储爬取到的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泽济天下

你的鼓励是我最大的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值