当前位置: 首页 > news >正文

“自动报社保 + 查询导出 ” 的完整架构图和 Playwright C# 项目初始化模板

目录

一、整体架构图

二、Playwright for .NET 初始化模板(C#)

三、执行调度(Quartz.NET)

四、验证码识别(Python + 超级鹰)

五、为什么这样设计可以做成产品


“自动报社保 + 查询导出 ” 的完整架构图和 Playwright C# 项目初始化模板


一、整体架构图

────────────────────────────────────────────自动化任务系统
────────────────────────────────────────────[UI层 - 产品界面]   WPF / Blazor Server- 配置社保账号- 上传模板Excel路径- 任务日志查看- 手动执行 / 停止任务
────────────────────────────────────────────[业务逻辑层 - 任务调度]   Quartz.NET- 每月固定日期自动执行报社保任务- 每日自动查询社保数据任务- 每周自动生成并发布任务
────────────────────────────────────────────[自动化执行层 - Playwright for .NET]1. 报社保- 登录你们内部系统,下载Excel- 登录社保局系统- 填写表单、上传Excel- 提交、截图2. 查询社保数据- 登录社保局- 执行查询条件- 导出Excel3. 发布文章- 登录- 填写标题、正文、标签- 发布
────────────────────────────────────────────[数据生成层]- 从数据库读取业务数据(Dapper / EF Core)- 调用AI API生成文章(GPT-4、DeepSeek、星火等)- 格式化为Markdown / HTML
────────────────────────────────────────────[辅助功能模块]- 验证码识别(Python OCR + 超级鹰 API)- Excel解析(EPPlus / NPOI)- 日志记录(NLog / Serilog)
────────────────────────────────────────────[存储层]- SQL Server / MySQL 存储任务配置、日志- 本地文件夹存储导出的Excel、截图
────────────────────────────────────────────

二、Playwright for .NET 初始化模板(C#)

  1. 安装依赖
dotnet new console -n AutoTasks
cd AutoTasks
dotnet add package Microsoft.Playwright
dotnet tool install --global Microsoft.Playwright.CLI
playwright install
  1. 项目结构
AutoTasks/├── Program.cs                // 主入口├── Tasks/│    ├── SocialSecurityTask.cs // 报社保任务│    ├── QuerySocialDataTask.cs // 查询导出任务│    ├── PublishCsdnTask.cs    // 发布任务├── Services/│    ├── OcrService.cs         // 验证码识别│    ├── ExcelService.cs       // Excel处理│    ├── AiContentService.cs   // AI生成文章├── appsettings.json           // 账号、密码、配置
  1. 基础代码示例(登录并上传Excel)
using Microsoft.Playwright;class Program
{public static async Task Main(){using var playwright = await Playwright.CreateAsync();var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions{Headless = false // 调试时可见浏览器});var page = await browser.NewPageAsync();// 访问社保局网站await page.GotoAsync("https://社保局登录地址");// 填写用户名和密码await page.FillAsync("#username", "你的账号");await page.FillAsync("#password", "你的密码");// 如果有验证码,这里调用 OCR 服务获取验证码// var captchaText = await OcrService.RecognizeAsync(await page.ScreenshotAsync(new PageScreenshotOptions { Path = "captcha.png" }));// await page.FillAsync("#captcha", captchaText);await page.ClickAsync("#loginBtn");// 上传Excelawait page.SetInputFilesAsync("input[type='file']", @"C:\报表\社保.xls");// 提交await page.ClickAsync("#submitBtn");await page.ScreenshotAsync(new PageScreenshotOptions { Path = "result.png" });await browser.CloseAsync();}
}

三、执行调度(Quartz.NET)

using Quartz;
using Quartz.Impl;class SchedulerConfig
{public static async Task Start(){StdSchedulerFactory factory = new StdSchedulerFactory();IScheduler scheduler = await factory.GetScheduler();await scheduler.Start();// 每月5号 10:00 执行报社保IJobDetail job = JobBuilder.Create<SocialSecurityTask>().Build();ITrigger trigger = TriggerBuilder.Create().WithCronSchedule("0 0 10 5 * ?").Build();await scheduler.ScheduleJob(job, trigger);}
}

四、验证码识别(Python + 超级鹰)

  • Playwright 截图验证码 → 调用 Python OCR 脚本识别
  • Python 脚本返回结果给 C#
  • 保证自动化不被卡死在验证码环节

五、为什么这样设计可以做成产品

  1. 多任务可扩展:社保、税务、博客发布都是任务模块,可单独启用/禁用
  2. 账号配置灵活:用户可自己配置账号密码,不需要改代码
  3. 后台运行稳定:Quartz.NET 定时执行,Playwright 支持无头模式
  4. 跨行业可用:换掉社保网站 URL 和定位器,就能适配别的政务/业务系统
  5. 支持升级为云端任务管理:未来可在云端部署,多个客户共享一套任务调度中心

http://www.dtcms.com/a/322664.html

相关文章:

  • 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)
  • 【阿里巴巴大数据实践之路学习记录】第十章-维度设计
  • 算法_python_学习记录_02
  • Docker大全
  • 通过 Docker 运行 Prometheus 入门
  • 开源智能手机安全相机推荐:Snap Safe
  • 数据结构(9)——排序
  • 【C++上岸】C++常见面试题目--数据结构篇(第十五期)
  • 搜索算法经典案例
  • SpringSecurity过滤器链全解析
  • navicat 连接docker容器里面mysql服务失败解决
  • 传输线的瞬时阻抗
  • UE破碎Chaos分配模型内部面材质
  • Jmeter性能测试之安装及启动Jmeter
  • Nginx 安全加固与服务监控体系
  • 如何无损压缩图片至原大小的10%?
  • ComfyUI——舒服地让大模型为我所用
  • 常用性能测试工具及使用方法介绍
  • 【内核配置】CONFIG_DEBUG_USER 配置项原理分析
  • 线程安全的单例模式,STL和智能指针
  • golang的二维数组
  • 直接插入排序算法:可视化讲解与C语言实现
  • 【R语言】单细胞数据整合质量评估(3)
  • Matlab 基于BP神经网络结合Bagging(BP-Bagging)集成算法的单变量时序预测 (单输入单输出)
  • Linux运维新手的修炼手扎之第26天
  • Effective C++ 条款31: 将文件间的编译依存关系降至最低
  • 飞算JavaAI:人工智能与Java的创新融合与应用前景
  • 5、docker镜像管理命令
  • Qt/C++开发监控GB28181系统/实时监测设备在线离线/视频预览自动重连/重新点播取流/低延迟
  • MySQL 复制表详细说明