高效智能的在线爬虫-spider-flow

高效智能的在线爬虫-spider-flow

2022-09-05 0 680
资源编号 38065 最近更新 2022-09-05
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的spider-flow可以用流程图的方式编写爬虫的平台,无需写代码就可以快速完成一个简单的爬虫。

高效智能的在线爬虫-spider-flow

项目特性

  • 支持css选择器、正则提取
  • 支持JSON/XML格式
  • 支持Xpath/JsonPath提取
  • 支持多数据源、SQL select/insert/update/delete
  • 支持爬取JS动态渲染的页面
  • 支持代理
  • 支持二进制格式
  • 支持保存/读取文件(csv、xls、jpg等)
  • 常用字符串、日期、文件、加解密、随机等函数
  • 支持流程嵌套
  • 支持插件扩展(自定义执行器,自定义函数、自定义Controller、类型扩展等)
  • 支持HTTP接口

安装部署

准备环境

JDK >= 1.8
Mysql >= 5.7
Maven >= 3.0 下载地址:(http://maven.apache.org/download.cgi)

运行项目

  1. 前往码云下载页面(https://gitee.com/ssssssss-team/spider-flow)下载解压到工作目录
  2. 设置Eclipse仓库,菜单Window->Preferences->Maven->User Settings->User Settings 后边的Browse,然后导入自己的Maven目录的conf目录下的settings.xml文件,然后点Apply,在点OK
  3. 导入到Eclipse,菜单file->Import,然后选择Maven->Existing Maven Projects,点击Next>按钮,选择工作目录,然后点击Finish按钮,即可导入成功
  4. 导入数据库,基础表:spider-flow/db/spiderflow.sql
  5. 打开并运行org.spiderflow.SpiderApplication.java
  6. 打开浏览器,输入(http://localhost:8088/)

引入插件

  1. 首先把需要的插件下载到本地并导入到工作空间或安装到maven库
  2. 在spider-flow/spider-flow-web/pom.xml中引入插件
<!-- 以引入mongodb插件为例 -->
<dependency>
	<groupId>org.spiderflow</groupId>
	<artifactId>spider-flow-mongodb</artifactId>
</dependency>

快速入门

爬取节点

该节点用于请求HTTP/HTTPS页面或接口

  • 请求方法:GET、POST、PUT、DELETE等方法
  • URL: 请求地址
  • 延迟时间:单位是毫秒,意思是爬取之前延迟一段时间在执行抓取
  • 超时时间:网络请求的超时时间,单位也是毫秒
  • 代理:请求时设置的代理,格式为host:port 如 192.168.1.26:8888
  • 编码格式:用来设置页面的编码格式默认为UTF-8,当解析出现乱码时,可以修改此值
  • 跟随重定向:默认是跟随30x重定向,当不需要此功能时,可以取消勾选
  • TLS证书验证:此项默认是勾选的,当出现证书一类的异常可以取消勾选此项尝试
  • 自动管理Cookie:请求时自动设置Cookie(自己手动设置的与之前请求的Cookie都会设置进去)
  • 自动去重:勾选时会对url进行去重处理,如果重复则跳过。
  • 重试次数:当请求发生异常或状态码不为200时会进行重试
  • 重试间隔:重试期间的间隔时间(单位为毫秒)
  • 参数:用来设置GET、POST等方法的参数设置
    • 参数名:参数key值
    • 参数值:参数value值
    • 参数描述:仅仅用来描述该项参数(相当于备注/注释)无实际意义
  • Cookie:用来设置请求Cookie
    • Cookie名:Cookie key值
    • Cookie值:Cookie value值
    • 描述:仅仅用来描述该项Cookie(相当于备注/注释)无实际意义
  • Header:用来设置请求头
    • Header名:Header key值
    • Header值:Header value值
    • 描述:仅仅用来描述该项Header(相当于备注/注释)无实际意义
  • Body:请求类型(默认是none)
  • form-data(Body项设置为form-data)
    • 参数名:请求参数名
    • 参数值:请求参数值
    • 参数类型:text/file
    • 文件名:上传二进制数据时需要填的文件名
  • raw(Body项设置为raw)
    • Content-Type:text/plain,application/json
    • 内容:请求体内容(String类型)

定义变量 Var

该节点用于定义变量之后,可以与表达式配套使用,实现动态设置各项参数(如动态请求分页地址)

  • 变量名:变量的名字,当变量名重复时,会覆盖前一个变量
  • 变量值:变量的值,可以是常量,可以是表达式

输出节点

该节点主要用于调试,测试时会把输出打印到页面中,另外也可以用来自动保存到数据库或文件

  • 输出到数据库:勾选时需要填写数据源、表名称,且<font color=”blue”>输出项</font>要与列名对应
  • 输出到CSV文件:勾选时需要填写CSV文件路径,<font color=”blue”>输出项</font>会作为表头
  • 输出全部参数:一般用来调试,可以输出所有变量到界面上
  • 输出项:输出项的名字
  • 输出值:输出的值,可以是常量,也可以是表达式

循环节点

  • 次数或集合:当此项有值(值为集合或数字)时,后续节点(包括本节点)会循环执行
  • 循环变量:默认为item,与for(Object item : collections) 中的item意义相同
  • 循环下标:当循环时,会产生下标(从0开始)以该值存入变量中,与for(int i =0; i < array.length;i++)中的i意义相同
  • 开始位置:从该位置开始循环(从0开始)
  • 结束位置:到该位置结束(-1为最后一项,-2为倒数第二项,以此类推)

执行SQL

主要用于与数据库交互(查询/修改/插入/删除等等)

  • 数据源:需要选择配置好的数据源
  • 语句类型:select/selectInt/selectOne/insert/insertofPk/update/delete
  • SQL: 要执行SQL语句,需要动态注入的参数用##包裹起来如:#${item[index].id}#

流程的执行过程

流程实例一

高效智能的在线爬虫-spider-flow

很容易就能看出流程执行过程是: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(即形成了嵌套循环)

流程实例二

高效智能的在线爬虫-spider-flow

  • 运行顺序:A->B->A,C->B->C
    • 先执行A节点
    • A节点执行时,执行B节点
    • B节点执行完毕时,执行A、C节点
    • 共计执行2次A,2次B,2次C。

这里会形成递归,即A<->B,但是形成这种情况时,往往都需要加条件进行限制,即上图中的页数 < 3

项目部分截图

高效智能的在线爬虫-spider-flow

高效智能的在线爬虫-spider-flow

爬虫测试

高效智能的在线爬虫-spider-flow

debug

高效智能的在线爬虫-spider-flow
资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 高效智能的在线爬虫-spider-flow https://www.7claw.com/38065.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务