# QSpider **Repository Path**: ssawk/qspider ## Basic Information - **Project Name**: QSpider - **Description**: 爬虫引擎,流式处理+无头浏览器 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-04-06 - **Last Updated**: 2023-04-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QSpider #### 介绍 爬虫引擎,基于无头浏览器,支持多线程、分布式、流式处理、代理等功能。开箱即用,简单便捷,有常用操作helper。 #### 软件架构 ![输入图片说明](Image%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230406173832.png) #### 安装教程 1. 克隆到本地 2. 修改Q.Spider.Sample项目Program.cs文件内注释代码代码 3. 尝试运行淘票票或者Midjourney示例程序 #### 使用说明 1. 新建FlwoBase派生类 ``` public class Midjourney : Core.FlowBase { public override async Task RunAsync(FlowContext Context) { //无头引擎加载页面 await Engine.StartLoad(Request.Uri.ToString()); //业务代码 //..... //上下文设置为爬取成功 Context.State = FlowContextHandelState.成功; } } ``` 2. 创建Request ``` var requestCity = new Request("https://discord.com/channels/662267976984297473/1008571152479826060") { //指定流处理 FlowTpyes = new List() { typeof(Midjourney) } }; ``` 3. 初始化引擎 ``` var core = new QSpiderCore(new Config() { EngineIsHeadless = false, EngineIsLoadImage = true, RequestMaxRetryCount = 3, }.ConfigureLaunchOptions(null, option => { option.UserDataDir = "d:/userdata/"; })); ``` 4.开始执行 ``` //添加处理流 core.AddFlow(new Midjourney()); //添加测试请求 Midjourney.AddTestRequest(core); core.Start(); Console.ReadLine(); ``` #### 未来计划 此项目是为了找工作,是从我写的一个爬虫项目里剥离出来的一部分代码,有需求或者bug可以发issues我有时间会进行处理。 - :white_large_square: 重构各类Helper代码 - :white_large_square: 分布式示例 - :white_large_square: 多线程示例 - :white_large_square: 分布式控制管理后台页面 - :white_large_square: linux、mac支持(理论上已支持待测试) - :white_large_square: 多引擎(纯模拟、其他无头浏览器库) - :white_large_square: NueGet发布 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request