# DMP **Repository Path**: honore/dmp ## Basic Information - **Project Name**: DMP - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-04 - **Last Updated**: 2025-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DMP ## 项目介绍 DMP 项目是一个多功能的 .NET 应用程序集合,主要目的是提供数据采集、用户认证、资源管理以及版本更新功能。该项目包含多个子模块,例如 `DMP.Common` 提供通用配置、扩展和工具类,`DMP.DataCollection.Services` 实现了爬虫服务和插件支持,`DMPTool` 和 `DMPUpdate` 为客户端提供初始化、登录和版本升级逻辑。 ### 功能模块 - **数据采集**: 使用 PuppeteerSharpLib 提供的浏览器自动化工具,支持数据爬取、验证码处理、资源阻断等插件。 - **用户认证**: 包括用户登录、令牌管理及认证服务。 - **资源管理**: 提供 RabbitMQ 消息队列支持,用于异步任务处理。 - **版本更新**: 支持自动检查和下载最新版本,并提供用户界面提示。 ## 快速开始 ### 环境要求 - .NET 5.0 或更高版本 - PuppeteerSharp 与 PuppeteerSharpLib 插件 - RabbitMQ 服务配置 ### 安装 1. 克隆项目到本地: ```bash git clone https://gitee.com/honore/dmp ``` 2. 恢复依赖: ```bash dotnet restore ``` 3. 编译并运行: ```bash dotnet build dotnet run --project DMP/DMP.csproj ``` ## 使用说明 ### 数据采集服务 `DMP.DataCollection.Services` 模块实现了基于 PuppeteerSharp 的数据采集功能,支持多种公共资源爬取,例如: - 招标信息采集 (Bid) - 公司信息采集 (JZ) - 人员信息采集 (Personnel) ### 验证码处理 项目中使用了 `RecaptchaPlugin` 插件,支持自动处理 reCAPTCHA 验证,使用时需配置提供者如 AntiCaptcha 或 2Captcha: ```c# var recaptchaPlugin = new RecaptchaPlugin(new AntiCaptcha("MyToken")); var browser = await new PuppeteerExtra().Use(recaptchaPlugin).LaunchAsync(new LaunchOptions { Headless = true }); ``` ### RabbitMQ 支持 `RabbitMQManager` 提供了 RabbitMQ 的连接与消息处理功能,可使用配置初始化并发送消息: ```c# var config = new RabbitMQConfig { Host = "localhost", Port = 5672, UserName = "guest", Pwd = "guest", QueueName = "work_queue" }; var manager = new RabbitMQManager(config, RabbitMQType.Worker, "work_queue"); manager.SendMessage("Hello RabbitMQ", 0); ``` ### 版本检查和更新 `VersionCheckJob` 提供了自动检查版本更新功能,也可以通过 `VersionManager` 手动检查: ```c# var latestFile = await VersionManager.CheckVersionUpdateAsync(); ``` ## 开发和扩展 该项目支持模块化开发,您可以通过扩展 `IServiceBase` 来创建新的服务,并利用 `WorkHandler` 来注册和执行任务。 ### 添加新服务 创建新服务类并实现 `IServiceBase` 接口: ```c# public class MyNewService : IServiceBase { public ServiceType ServiceType => ServiceType.MyNew; public async Task InvokeAsync(Work work) { // 实现业务逻辑 return WorkResult.Result(work, ExecStatus.Complete); } } ``` 注册服务: ```c# WorkHandler.handlers.Value.Add("my_new_service", new MyNewService()); ``` ## 贡献指南 - Fork 项目并创建自己的分支 - 实现新功能或修复 Bug - 提交 Pull Request 并说明修改内容 ## 相关文档 - PuppeteerSharpLib: [README.md](PuppeteerSharpLib/README.md) - RabbitMQ 使用: [RabbitMQManager.cs](DMP.Common/RabbitMQ/RabbitMQManager.cs) - 数据采集插件: [RecaptchaPlugin](PuppeteerSharpLib/Plugins/Recaptcha/readme.md) ## 许可证 本项目采用 MIT 许可证,请查看 [LICENSE](LICENSE) 文件以了解详细信息。