零代码爬虫平台SpiderFlow的安装

在这里插入图片描述

什么是 Spider Flow ?

Spider Flow 是一个高度灵活可配置的爬虫平台,用户无需编写代码,以流程图的方式,即可实现爬虫。该工具支持多数据源、自动保存至数据库、任务监控、抓取 JS 动态渲染页面、插件扩展(OCR 识别、邮件发送)等功能。

在这里插入图片描述

是不是和 n8n 有点像,不过目前 SpiderFlow 项目似乎已经停止开发了

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

官方提供了 Dockerfile,但没有提供镜像,想用现成的,但是不确定代码是不是最新的,所以还是自己编了一下,发现这个 Dockerfile 存在两个问题:

  1. 现在已经找不到 java:8 镜像了;

  1. Release 中并没有提供编译好的 jar 包,需要自己从源代码编译;

所以老苏重新改写了 Dockerfile ,选择了多阶段构建方式

# 源码构建
FROM maven:3.6.0-jdk-11-slim AS builder
COPY . ./
RUN mvn clean install

# 镜像打包
FROM openjdk:8-jdk-alpine  
LABEL maintainer=laosu<wbsu2003@gmail.com> 
  
RUN mkdir -p /spider-flow  
WORKDIR /spider-flow  
EXPOSE 8088  
COPY --from=builder ./spider-flow-web/target/spider-flow.jar ./  
CMD sleep 30;java -Djava.security.egd=file:/dev/./urandom -jar spider-flow.jar

源码编译的时间还是比较长的

构建镜像和容器运行的基本命令如下👇

# 下载代码
git clone https://github.com/ssssssss-team/spider-flow.git
  
# 或者加个代理
git clone https://ghproxy.com/github.com/ssssssss-team/spider-flow.git
  
# 进入目录  
cd spider-flow

# 将 Dockerfile 放入当前目录
  
# 构建镜像
docker build -t wbsu2003/spider-flow:v1 .

数据库设置

本文老苏演示了 2 种数据库安装方式:

  • 一种是采用了群晖自带的 MariaDB 10,对于群晖用户来说,会节省一点点空间;

  • 另一种是独立安装数据库,docker-compose 安装就采用了这种方式,更适合非群晖用户使用;

导入脚本

首先要下载 SQL 文件来完成数据库的初始化,不管采用上面方式,这一步都是必不可少的

SQL 文件的下载地址:https://github.com/ssssssss-team/spider-flow/blob/master/db/spiderflow.sql

phpMyAdmin导入 下载的 spiderflow.sql

在这里插入图片描述

导入成功

创建用户

接下来在 phpMyAdmin 中创建名为 spiderflow 的用户

为便于说明,假设数据库密码为 123456

往常我们会勾选 创建与用户同名的数据库并授予所有权限,但这次没有,因为数据库已经通过 spiderflow.sql 建好了

这次只是单纯的建了用户

在这里插入图片描述

所以我们还需要给用户操作对应的数据库的权限,找到 spiderflow

勾选 全选

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307
  • 数据库用户:spiderflow
  • 数据库密码:123456
  • 数据库库名:spiderflow

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 spider-flow ,选择第三个 wbsu2003/spider-flow,版本选择 latest

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
38188088

环境

可变
SPRING_DATASOURCE_DRIVER-CLASS-NAME数据库类型
SPRING_DATASOURCE_USERNAME数据库用户
SPRING_DATASOURCE_PASSWORD数据库密码
SPRING_DATASOURCE_URL数据库地址
  • SPRING_DATASOURCE_DRIVER-CLASS-NAME:因为使用的是 MySQL或者 MariaDB,所以设为 com.mysql.jdbc.Driver
  • SPRING_DATASOURCE_USERNAME:按前面的设置,应该为 spiderflow
  • SPRING_DATASOURCE_PASSWORD:按前面的设置,应该为 123456
  • SPRING_DATASOURCE_URL:是一个由多个参数拼接出来的地址,jdbc:mysql://<数据库IP>:<数据库端口>/<数据库库名>?useSSL=false&useUnicode=true&characterEncoding=UTF8&autoReconnect=true,所以这里应该是 jdbc:mysql://192.168.0.197:3307/spiderflow?useSSL=false&useUnicode=true&characterEncoding=UTF8&autoReconnect=true

更多的环境变量可以参考 application.properties 文件:https://github.com/ssssssss-team/spider-flow/blob/master/spider-flow-web/src/main/resources/application.properties

命令行安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 运行容器
docker run -d \
   --name spider-flow \
   -p 3818:8088 \
   -e SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver \
   -e SPRING_DATASOURCE_USERNAME=spiderflow \
   -e SPRING_DATASOURCE_PASSWORD=123456 \
   -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.0.197:3307/spiderflow?useSSL=false&useUnicode=true&characterEncoding=UTF8&autoReconnect=true" \
   wbsu2003/spider-flow

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

这里使用了独立的 MySQL 数据库容器,而不是群晖自带的 MariaDB

version: '3'

services:
  spider-flow:
    image: wbsu2003/spider-flow
    container_name: spider-flow
    restart: always
    ports:
      - 3818:8088
    environment:
      - SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
      - SPRING_DATASOURCE_URL=jdbc:mysql://spider-mysql/spiderflow?useSSL=false&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&allowPublicKeyRetrieval=true
    depends_on:
      - spider-mysql

  spider-mysql:
    image: mysql:8.0
    container_name: spider-mysql
    restart: always
    volumes:
      - ./data:/var/lib/mysql
      - ./sql:/docker-entrypoint-initdb.d:ro
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
      - TZ=Asia/Shanghai
      - MYSQL_INITDB_SKIP_TZINFO=true
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

因为使用了 mysql:8.0,相比前面的 SPRING_DATASOURCE_URL,这里新增了 AllowPublicKeyRetrieval=True ,为 允许客户端自动从服务器请求公钥,否则数据库连接会被拒绝

然后执行下面的命令

# 新建文件夹 spiderflow 和 子目录
mkdir -p /volume1/docker/spiderflow/{data,sql}

# 进入 spiderflow 目录
cd /volume1/docker/spiderflow

# 将 docker-compose.yml 放入当前目录
# 将 spiderflow.sql 放入 /sql 目录

# 一键启动
docker-compose up -d

根目录下文件

在这里插入图片描述

sql 目录下文件

运行

在浏览器中输入 http://群晖IP:3818 就能看到主界面

测试可以试试第三个 抓取每日菜价

在这里插入图片描述

具体使用方法,网上搜搜一大把,这里就略过了

参考文档

ssssssss-team/spider-flow: 新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。
地址:https://github.com/ssssssss-team/spider-flow

spider-flow: 新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。
地址:https://gitee.com/ssssssss-team/spider-flow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/62166.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows下安装Scala(以Scala 2.11.12为例)

Windows下安装Scala&#xff08;以Scala 2.11.12为例&#xff09; 一、Scala2.11.12官网下载二、Scala2.11.12网盘下载三、Scala各版本下载地址四、Scala安装4.1、点击 scala-2.11.12.msi 文件安装4.2、设置环境变量 %SCALA_HOME%4.3、环境变量Path添加条目%SCALA_HOME%\bin 四…

【云原生】使用kubeadm搭建K8S

目录 一、Kubeadm搭建K8S1.1环境准备1.2所有节点安装docker1.3所有节点安装kubeadm&#xff0c;kubelet和kubectl1.4部署K8S集群1.5所有节点部署网络插件flannel 二、部署 Dashboard 一、Kubeadm搭建K8S 1.1环境准备 服务器IP配置master&#xff08;2C/4G&#xff0c;cpu核心…

Vue系列第八篇:echarts绘制柱状图和折线图

本篇将使用echarts框架进行柱状图和折线图绘制。 目录 1.绘制效果 2.安装echarts 3.前端代码 4.后端代码 1.绘制效果 2.安装echarts // 安装echarts版本4 npm i -D echarts4 3.前端代码 src/api/api.js //业务服务调用接口封装import service from ../service.js //npm …

Jenkins触发器时间、次数设定

触发器触发条件介绍 触发器触发条件公式&#xff1a;由5颗星组成 * * * * * 分别代表&#xff1a;分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6) 企业项目中常用场景介绍 场景1&#xff1a;接口脚本部分测试通过&#xff0c;部分还在进行&#xff0c;回归测试脚本执行…

数学知识(三)

一、容斥原理 #include<iostream> #include<algorithm>using namespace std;const int N 20;typedef long long LL; int n,m; int p[N];int main() {cin>>n>>m;for(int i 0;i < m;i ) cin>>p[i];int res 0;//从1枚举到2^m(位运算)for(int …

数据结构---B树

目录标题 B-树的由来B-树的规则和原理B-树的插入分析B-树的插入实现准备工作find函数insert中序遍历 B-树的性能测试B-树的删除B树B树的元素插入B*树的介绍 B-树的由来 在前面的学习过程中&#xff0c;我们见过很多搜索结构比比如说顺序查找&#xff0c;二分查找&#xff0c;搜…

第三章 图论 No.1单源最短路及其综合应用

文章目录 1129. 热浪1128. 信使1127. 香甜的黄油1126. 最小花费920. 最优乘车903. 昂贵的聘礼1135. 新年好340. 通信线路342. 道路与航线341. 最优贸易 做乘法的最短路时&#xff0c;若权值>0&#xff0c;只能用spfa来做&#xff0c;相等于加法中的负权边 1129. 热浪 1129.…

码出高效_第二章 | 面向对象_上

目录 一. OOP理念1. 概念辨析2. 四大特性1. 抽象2. 封装3. 继承4. 多态 二. 初识Java1. JDKJDK 5-11的重要类、特性及重大改变 2. JRE关于JVM 三. 类1. 概述2. 接口和抽象类1. 概念及相同点2. 不同点3. 总结 3. 内部类4. 访问权限控制1. 由来2. public/private/无/private3. 推…

AI介绍——chat gpt/文心一言/claude/bard/星火大模型/bing AI

AI体验 1. AI 介绍&#xff08;注册和使用&#xff09;1.1 Chat GPT1.2 文心一言1.3 Slack 上的 Claude1.3.1 Claude 介绍1.3.2 Claude 使用 1.4 Google的Bard1.4.1 Bard 介绍1.4.2 Bard 使用 1.5 科大讯飞的星火大模型1.5.1 星火大模型 介绍1.5.2 星火大模型 使用 1.6 new bin…

UE4查看加密PAK里边的资源Android/iOS/PC方法

我们经常会需要把1个模型进行减面然后在移动端使用,有时候会出现移动端模型和PC端模型不一致的问题,这时候就需要将移动端的模型和PC端的模型进行对比,找到问题出现的原因,检查Mesh、Normal、UV0、UV1、MaterialId、碰撞等是否一致。 如何打包Pak文件,见这篇文章:UE4打包…

定点数源码除法运算补码除数运算

恢复余数法 加减交替法 补码除法

K8S系列文章之 服务部署核心概念

主要讲述如何在K8s中部署应用。 首先&#xff0c;我们在实战项目中经常会用到的一些概念 PodDeploymentServiceNamespacesDNS 使用上一篇文章&#xff0c;我们重建Kind K8s环境&#xff0c;并部署一个可以从本地访问的简单网页&#xff0c;加深理解。 环境(配置) centos7Doc…

TOPSIS法

TOPSIS法 文章目录 TOPSIS法TOPSIS法的三点解释增加指标个数1.统一指标类型极小型指标转换为极大型指标的公式中间型指标转换为极大型指标的公式区间型指标转换为极大型指标的公式 2.正向化矩阵标准化3.计算得分并归一化类比只有一个指标计算得分 TOPSIS法代码统一指标类型判断…

开发运营监控

DevOps 监控使管理员能够实时了解生产环境中的元素&#xff0c;并有助于确保应用程序平稳运行&#xff0c;同时提供最高的业务价值&#xff0c;对于采用 DevOps 文化和方法的公司来说&#xff0c;这一点至关重要。 什么是开发运营监控 DevOps 通过持续开发、集成、测试、监控…

【CHI】架构介绍

Learn the architecture - Introducing AMBA CHI AMBA CHI协议导论--言身寸 1. AMBA CHI简介 一致性集线器接口&#xff08;CHI&#xff09;是AXI一致性扩展&#xff08;ACE&#xff09;协议的演进。它是Arm提供的高级微控制器总线架构&#xff08;AMBA&#xff09;的一部分。…

《HeadFirst设计模式(第二版)》第六章代码——命令模式

代码文件目录&#xff1a; Command package Chapter6_CommandPattern.Command;/*** Author 竹心* Date 2023/8/6**/public interface Command {public void execute();public void undo();//撤销该指令 }CeilingFan package Chapter6_CommandPattern.ElectricAppliance;/*** …

使用Socket实现TCP版的回显服务器

文章目录 1. Socket简介2. ServerSocket3. Socket4. 服务器端代码5. 客户端代码 1. Socket简介 Socket&#xff08;Java套接字&#xff09;是Java编程语言提供的一组类和接口&#xff0c;用于实现网络通信。它基于Socket编程接口&#xff0c;提供了一种简单而强大的方式来实现…

华云安参编的《云原生安全配置基线规范》正式发布

由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;、中国通信标准化协会主办的第十届可信云大会云原生安全分论坛于7月26日在北京国际会议中心成功召开。作为大会上展示的成果之一&#xff0c;由中国信通院联合行业领先企业共同编写的《云原生安全配置基线规…

剑指 Offer 53 - II. 0~n-1中缺失的数字

题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的&#xff0c;并且每个数字都在范围0&#xff5e;n-1之内。在范围0&#xff5e;n-1内的n个数字中有且只有一个数字不在该数组中&#xff0c;请找出这个数字。示例 解答 一眼二分法 class Solution {public int mi…

java中使用Jsoup和Itext实现将html转换为PDF

1.在build.gradle中安装所需依赖&#xff1a; implementation group: com.itextpdf, name: itextpdf, version: 5.5.13 implementation group: com.itextpdf.tool, name: xmlworker, version: 5.5.13 implementation group: org.jsoup, name: jsoup, version: 1.15.32.创建工具…