SpiderFlow平台v0.5.0流程的执行过程
流程执行过程:
1. 流程启动
流程的执行通常从一个 开始节点 开始,该节点是整个爬虫任务的起点。开始节点没有实际的功能作用,主要作用是标记流程的起始。
- 执行顺序:在执行过程中,系统按照流程中的连接线顺序依次执行每个节点。
2. 爬取节点执行
爬取节点(通常是HTTP请求节点)是爬虫流程中的核心部分,负责发送请求并获取网页数据。
- 请求方式:根据配置,爬取节点可以发送不同类型的HTTP请求(如GET、POST等)。
- 数据解析:爬取节点获取到页面响应后,通常会继续执行数据解析操作,提取需要的信息。解析的内容可能包括HTML、JSON、XML等。
请求流程:
- 系统向目标URL发送请求。
- 处理请求参数、请求头(Headers)、Cookie等信息。
- 等待服务器返回响应数据。
- 若请求成功,则继续下一步;若失败,重试或者跳过。
3. 数据存储节点
在数据爬取后,通常需要将爬取到的数据存储到数据库、文件、CSV文件等地方。SpiderFlow 提供了多个数据输出节点:
- 数据库存储:执行SQL节点将数据插入到指定的数据库表中。
- 文件存储:通过CSV输出节点将数据写入文件。
- 输出调试:通过输出节点将结果展示在SpiderFlow界面中,方便开发调试。
4. 逻辑处理节点
爬虫流程中可能需要做一些条件判断、循环等操作,这时会使用到逻辑处理节点:
-
条件判断节点:根据某些条件(如返回的HTTP状态码、页面内容等)决定下一步要执行哪个节点。比如,若返回的页面包含某些特定关键词,则执行某个节点,反之则跳过。
-
循环节点:用于执行循环操作,适用于分页或多次执行相似任务。例如,如果需要爬取多个页面,可以在循环节点中定义分页逻辑。
5. 变量与参数传递
在执行过程中,可能需要在不同节点间传递变量或参数。SpiderFlow 允许用户动态地定义变量,并将其传递给其他节点。
- 变量定义:通过变量节点定义需要在后续节点中使用的变量(如页面的链接、提取的内容等)。
- 表达式语法:用户可以在节点中使用表达式来动态传递数据,类似于
#${variable_name}#这样的动态变量。
6. 子流程与模块化
如果爬虫任务较为复杂,可以将任务拆分成多个子流程。这样可以提高复用性和流程的可维护性。
- 调用子流程:在主流程中使用“子流程”节点来调用其他已定义的子流程。这样子流程可以单独执行,也可以作为主流程的一部分。
7. 执行结果与错误处理
在流程执行的过程中,若出现错误或异常(例如请求失败、数据解析错误等),SpiderFlow 提供了错误处理机制。
- 重试机制:爬虫节点可以配置重试次数,若请求失败,则会进行重试操作。
- 日志输出:系统会输出执行过程中的日志,用户可以通过日志查看爬虫的执行情况,便于调试和排查问题。
8. 流程结束
当所有节点执行完毕,流程会结束。此时,SpiderFlow 会对流程执行结果进行总结,可以查看成功的记录、失败的记录和错误日志。
- 输出:执行结果可以通过日志、数据库、文件等多种方式输出。
- 清理资源:结束时,系统会进行资源清理,如关闭数据库连接、清理缓存等。
流程实例分析:
简单一句话概括就是流程会按照箭头的方向一直流转下去,个别节点会打断流转(箭头)或重复流转(循环)。下面举几个例子来说明一下。
-
流程实例一

很容易就能看出流程执行过程是:A->B->C->D,但由于A节点是循环,假设A节点循环次数是3,那么此时执行过程会变成A,A,A->B,B,B->C,C,C->D,D,D(3个A一起执行,但是顺序不固定,每执行完一个就会直接流向下一个节点,而不是等3个A都结束),当D,D,D都执行完毕时,由于没有流向下一个节点,此时整个流程结束。
由于B,C,D节点中也可以设置循环,假设C节点也设置了循环,其循环次数是2次,那么此时整个流程的执行过程是A,A,A->B,B,B->C,C,C,C,C,C->D,D,D,D,D,D(即形成了嵌套循环)
-
流程实例二

- 先说运行顺序:A->B->(C->F),(D->E)->G->H
-
- 先执行A节点
- A节点执行完毕时,执行B节点
- B节点执行完毕时,同时执行C、D节点
- C节点执行完毕时,执行F节点
- D节点执行完毕时,执行E节点
- E、F节点都执行完毕时,执行G节点(G节点是等待结束节点,所以这里会等E、F都结束,否则无论E、F哪个节点执行完毕,都会执行G节点)
- G节点执行完毕时,执行H节点
- H节点执行完毕时,流程结束
由于C节点是循环节点,假设C节点循环次数是3次,则上方从C节点开始则变成C,C,C->F,F,F->G->H
-
流程实例三

- 运行顺序:A->B->A,C->B->C
-
- 先执行A节点
- A节点执行时,执行B节点
- B节点执行完毕时,执行A、C节点
- 共计执行2次A,2次B,2次C。
这里会形成递归,即A<->B,但是形成这种情况时,往往都需要加条件进行限制,即上图中的页数 < 3
总结:SpiderFlow v0.5.0 流程执行过程
- 开始节点:触发流程执行。
- 爬取节点:执行HTTP请求获取数据。
- 数据存储节点:将数据存储到数据库或文件中。
- 逻辑处理节点:处理业务逻辑,如条件判断、循环等。
- 变量与参数传递:在不同节点间传递数据。
- 子流程调用:通过子流程节点调用其他流程,保持模块化。
- 错误处理:在遇到错误时进行重试或记录错误日志。
- 流程结束:流程结束,进行资源清理和输出执行结果。
通过这些节点,用户可以灵活地设计和执行爬虫任务。每个节点都有明确的功能,配合流程图的设计,使得爬虫开发变得更加可视化和易于管理。
相关文章:
SpiderFlow平台v0.5.0流程的执行过程
流程执行过程: 1. 流程启动 流程的执行通常从一个 开始节点 开始,该节点是整个爬虫任务的起点。开始节点没有实际的功能作用,主要作用是标记流程的起始。 执行顺序:在执行过程中,系统按照流程中的连接线顺序依次执行…...
利用.NET Upgrade Assitant对项目进行升级
本教程演示如何把WPF程序从 <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>升级到<TargetFramework>net8.0-windows</TargetFramework>. 下载并安装.NET Upgrade Assistant - Visual Studio Marketplace Supported .NET upgrades: .NET Frame…...
JAVA开发Erp时日志报错:SQL 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘***‘ 中的标识列插入显式值
错误提示 ### SQL: INSERT INTO sys_user ( user_id, username, password, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ? ) ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 当 IDENTITY_INSERT 设置为 OFF 时&…...
[计算机网络]ARP协议的故事:小明找小红的奇妙旅程
1.ARP小故事 在一个繁忙的网络世界中,每个设备都有自己的身份标识——MAC地址,就像每个人的身份证号码一样。在这个故事里,我们的主角小明(主机)需要找到小红(目标主机)的MAC地址,才…...
数学竞赛网站:构建互动学习的网络平台
2.1 MYSQL数据库 题目确定了是一个应用程序之后,就开始按部就班的进行设计与分析。本课题是需要数据库作为数据管理工具以及数据载体,从程序功能分析到数据分析,选择合适的关系型数据库是当下所选择的重要环节。关系型数据库可选择余地不多&a…...
IntelliJ IDEA 快捷键大全:提升开发效率的利器
目录 一、基础快捷键 1. 文件操作快捷键 2. 编辑(Editing) 2.1 代码补全与导航 2.2 代码编辑 2.3 代码折叠与展开 3. 查找与替换 4. 调试 5. 版本控制 高级快捷键 重构快捷键:让代码更加优雅 导航快捷键:快速定位代码 …...
机器人角度参考方式
机器人的角度可以根据需求和系统设计来决定。通常情况下,机器人角度(如航向角或偏航角)有两种常见的参考方式: 参考开机时的 0:这是最常见的方式,机器人在开机时会将当前的方向作为 0(即参考方向…...
VSCode:IDE显示设置 --自定义字体及主题颜色
VSCode:IDE显示设置 1.设置字体大小2.设置主题背景 1.设置字体大小 (1)打开VSCode。 (2)打开设置:File – Preferences – Settings。 (3)设置字体大小:Text Editor –…...
docker run命令大全
docker run命令大全 基本语法常用选项基础选项资源限制网络配置存储卷和挂载环境变量重启策略其他高级选项示例总结docker run 命令是 Docker 中最常用和强大的命令之一,用于创建并启动一个新的容器。该命令支持多种选项和参数,可以满足各种使用场景的需求。以下是 docker ru…...
Debezium日常分享系列之:Debezium 3.0.5.Final发布
Debezium日常分享系列之:Debezium 3.0.5.Final发布 重大变化Kafka信号源变更事件源信息块 新功能和改进核心允许在未知表上进行临时阻塞快照快照分发失败处理改进连接器启动配置日志改进 Postgres支持PostgreSQL 17的故障转移复制槽 Oracle跟踪部分回滚事件的新指标…...
机器学习常用评估Metric(ACC、AUC、ROC)
一、混淆矩阵 基于样本预测值和真实值是否相符,可得到4种结果: TP(True Positive):样本预测值与真实值相符且均为正,即真阳性 FP(False Positive):样本预测值为正而真实值为负,即假阳性 FN(False Negative…...
uniapp 微信小程序 功能入口
单行单独展示 效果图 html <view class"shopchoose flex jsb ac" click"routerTo(要跳转的页面)"><view class"flex ac"><image src"/static/dyd.png" mode"aspectFit" class"shopchooseimg"&g…...
typora数学符号
typora数学符号 Typora 是一个支持 LaTeX 数学公式的优秀 Markdown 编辑器,可以直接编写数学公式并实时渲染。以下是如何在 Typora 中使用数学公式的详细指南: 1. 启用数学公式支持 默认情况下,Typora 支持 LaTeX 格式的数学公式࿰…...
如何保障多个Facebook账号稳定运行:一账号一稳定IP?
在如今的数字营销和社交媒体运营中,管理多个Facebook账号已成为许多企业和个人的常态。然而,多个账号的管理不仅需要技巧,还需要策略,尤其是在IP地址和账号关联管理上。如果操作不当,可能会导致账号被封禁甚至无法解封…...
今日总结 2024-12-23
项目初始化 拉取代码与环境配置: 难点:Git 命令不熟悉,依赖文件定位不准,启动脚本含义不明。解决办法:系统学习 Git 基础操作,如通过官方文档、优质的 Git 教程视频,反复练习克隆、分支切换等常…...
c++------------------函数
函数定义 语法格式 函数定义包括函数头和函数体。函数头包含返回类型、函数名和参数列表。函数体是用花括号{}括起来的代码块,用于实现函数的功能。例如,定义一个计算两个整数之和的函数: int add(int a, int b) {return a b; }这里int是返回…...
软件信息化平台项目投标技术方案中如何进行项目实施方案以及安全质量方案培训售后方案应急预案的编写?
在软件平台投标技术方案中,项目实施方案、质量管理、安全管理、培训方案、售后服务方案和应急预案等章节至关重要,它们分别从不同角度确保项目的顺利实施、高质量交付、安全稳定运行、用户有效使用、持续服务保障以及应对突发情况的能力。各章节编制要点相互关联、协同作用,…...
Apache Tomcat 漏洞CVE-2024-50379条件竞争文件上传漏洞 servlet readonly spring boot 修复方式
1,关于漏洞 Apache Tomcat是一个流行的开源 Web 服务器和 Java Servlet 容器。 二、 漏洞描述 Apache Tomcat中修复了个 TOCTOU 竞争条件远程代码执行漏洞 (CVE-2024-50379),该漏洞的 CVSS 评分为 9.8。Apache Tomcat 中 JSP 编译期间存在检查时间使用时…...
中国信通院致信感谢易保全:肯定贡献能力,期许未来合作
近日,中国信息通信研究院(以下简称“中国信通院”)向易保全发感谢信表达谢意,对其在中国信通院牵头的“铸基计划”——企业数字化转型高质量发展推进行动实施中展现出的重要贡献给予了高度评价和肯定,并展望了双方至20…...
20241220流水的日报 mysql的between可以用于字符串 sql 所有老日期的,保留最新日期
1.F310A RKP有效性验证讨论:需连外网,需先用app生成标志,工具读标志。 2.M200 适配一个 给客户写配置的工具 mysql的between可以用于字符串 批量打印包装箱时,提示有重复N条的处理方法: --先备份数据库,删…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...
起重机起升机构的安全装置有哪些?
起重机起升机构的安全装置是保障吊装作业安全的关键部件,主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理: 一、超载保护装置(核心安全装置) 1. 起重量限制器 功能:实时监测起升载荷&a…...
