# low-code-spider **Repository Path**: tfgzsdgit/low-code-spider ## Basic Information - **Project Name**: low-code-spider - **Description**: 低代码爬虫平台,学习自https://gitee.com/ssssssss-team/spider-flow。 前端在另一个项目:spider-frontend - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2024-10-31 - **Last Updated**: 2024-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## introduction 以流程图的方式定义爬虫,组件可复用,高度灵活,可配置。 >
随手玩玩就行 ## 项目特性 - 支持redis实现url去重 - 支持CSV文件写入和下载 - 支持MySQL写入 - 支持xpath提取 - 支持cookie自动管理 - 支持自定义函数功能(两种表达式函数) - 支持日志在线输出,日志本地存储和下载 - 支持定时任务 - 支持历史流程图恢复 ![image-20240522224859981](assets/image-20240522224859981.png) ## 项目部分截图 ### 爬虫[流程图]列表 ![image-20240522225005677](assets/image-20240522225005677.png) ### 爬虫测试 ![gvip测试视频](assets/gvip测试视频-17161256029122.gif) ### Gitee GVIP项目列表爬取结果 ![img.png](assets/img.png) ### 定时任务 #### 开机扫描定时任务 ![image-20240524091157047](assets/image-20240524091157047.png) ### 数据源 ![image-20240519213327074](assets/image-20240519213327074.png) ### 日志 ![image-20240519213333507](assets/image-20240519213333507.png) ### CSV文件管理 ![image-20240519213343486](assets/image-20240519213343486.png) ### 帮助文档 ![image-20240519213350377](assets/image-20240519213350377.png) ### 技术架构 各个层的技术构成(服务层至少部分) ![image-20240528093902272](assets/image-20240528093902272.png) ## ps|todo 1. Future中的result有什么用 [解决] 2. QuartzJobBean类是什么,有啥用[定时任务] 3. redis貌似没啥用,刚学的,用上了 4. 前端在线测试的日志窗口用了element-plus的普通表格,数据量大时很卡,可能后端WebSocket写完了,但是前端还要好几分钟 5. 线程池还存在问题,提交任务不执行(看起来像是满了,但实际没任务) 6. 学习练手的项目、、、 ``` 以下没啥用~~~ ``` ## 流程设计 ### 页面抓取流程(demo,仅做演示) 1. 设置url,以及一些请求的必要参数 2. 发送请求,获取响应 3. 获取响应文本,写入html文件(状态码另说) ### 页面解析 1. 读取文件,获取html字符串 2. 用jsoup解析html字符串得到一个解析器对象 3. 通过该解析器对象进行特定的一系列解析操作 ## 需求列表以及进度详情 ### 整体框架 数据模型 - 数据库实体类 User Flow Task Datasource - 工具实体 任务流框架 - [x] 单任务多线程执行流 - [x] 父子线程池提交以及任务执行 - [x] 运行前后listener - [x] request执行策略(timeout和delay的关系) logback日志框架 - [x] fileAppender - [x] webSocketAppender ### 具体实现 shapeExecutor - [x] RequestExecutor - [x] StartExecutor - [x] VariableExecutor - [x] OutputExecutor functionExecutor - [x] StringExecutor - [ ] RegexExecutor - [ ] SQLExecutor - [ ] ...Executor service类 - [x] UserService - [x] FlowService - [x] TaskService - [x] DataSourceService utils类 - 流程图工具类 - [x] loadJsonFromString(json):SpiderNode - 文件工具类 - [x] readLogs:List - [x] createLog:OutputStream * datasource工具类 - [x] getDataSource:Datasource - 表达式工具类 - [x] execute(expression,variables):Object [引用别人的] - Executor工具类 - [x] get(shape):ShapeExecutor - 文本分析工具类