大家好,我是爱撸码的开源大叔。
之前和大家分享过java爬虫框架 Jsoup,可还是要敲代码才能爬取东西,运营产品还是没法直接用,时不时来找大叔我爬些数据做分析,烦得很。
于是乎去 GitHub 找了找有没有不用写代码的爬虫工具,结果还真有 SpiderFlow 无需敲代码,即可爬数据。部署好就丢给运营产品,让他们自己玩了。
简介
SpiderFlow 是一个爬虫平台,以图形化方式定义爬虫流程,无需代码即可实现一个爬虫
特性
- 支持 CSS 选择器、正则提取
- 支持 JSON/XML 格式
- 支持 Xpath/JsonPath 提取
- 支持多数据源、SQL select/insert/update/delete
- 支持爬取 JS 动态渲染的页面
- 支持代理
- 支持二进制格式
- 支持保存/读取文件(csv、xls、jpg等)
- 常用字符串、日期、文件、加解密、随机等函数
- 支持流程嵌套
- 支持插件扩展(自定义执行器,自定义函数、自定义 Controller 、类型扩展等)
- 支持 HTTP 接口
快速部署
基础环境
代码语言:javascript复制JDK >= 1.8
Mysql >= 5.7
Maven >= 3.0 下载地址:(http://maven.apache.org/download.cgi)
搭建本地环境
导入数据库
基础表:spider-flow/db/spiderflow.sql
导入项目到 idea
修改 application.propeties
修改 spider-flow-web 下面的application.propeties
代码语言:javascript复制# 数据库配置
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/spiderflow?useSSL=false&useUnicode=true&characterEncoding=UTF8&autoReconnect=true
运行项目
运行 SpiderApplication 类,看到以下信息,即启动成功
代码语言:javascript复制 Tomcat started on port(s): 8088 (http) with context path ''
Started SpiderApplication in 4.22 seconds (JVM running for 4.951)
使用
访问
浏览器访问:http://localhost:8088/
基础组件介绍
开始节点
仅仅是爬虫的起点,所有流程图必须有该节点。
爬取节点
该节点用于请求 HTTP/HTTPS 页面或接口。
定义变量
该节点用于定义变量之后,可以与表达式配套使用,实现动态设置各项参数(如动态请求分页地址)
变量名:变量的名字,当变量名重复时,会覆盖前一个变量。
变量值:变量的值,可以是常量,可以是表达式。
输出节点
该节点主要用于调试,测试时会把输出打印到页面中,另外也可以用来自动保存到数据库或文件。
例子:抓取百度热搜问题
从左边的组件栏中分别拖拽出那三个组件
设置爬取的节点配置
设置变量规则
设置输出
运行爬虫
得到结果:
小结
我们直接将爬虫平台部署好后,一句代码也没写就可以直接根据网站情况,创建爬虫爬取数据。就问大家 SpiderFlow 这个项目香不香?文中的例子也是比较简单的,平台还有很多高级功能,大家有兴趣可以继续探索。
问君能有几多愁,开源项目解千愁,我们下期再见!