Web自动化技术选择

我想学习自动化技术,我的诉求是: 

1.我想做自动报社保功能,先从我们自己的系统里面下载Excel,然后自动登录到社保局的系统,自动填写Excel,自动上传Excel。 

2.可以自动的到社保局的系统里面查下数据,导出Excel。

使用的技术最好支持C#代码,其次是python。 请帮我推荐最合适的技术方案。

其实是想做一个**“可落地成产品的自动化工具”**,而且你的三个需求跨度很大:

  1. 社保局自动化报表(下载 → 登录 → 上传 → 查询)

  2. 数据库查询 。

  3. 要求 C# 优先,Python 次之

  4. 目标是稳定性、易用性、可扩展性。

经认真分析后,我觉得可以用分层架构 + 混合技术栈的方案,这样既能满足 C#,又能在需要的时候用 Python 的生态优势。


一、总体技术方案

1. 自动化核心

我建议用 Playwright for .NET 而不是 Selenium:

  • 理由

    • Playwright 的等待机制、文件上传、事件监听比 Selenium 更现代化、稳定。

    • 支持无头模式(不弹浏览器),可以做成服务后台运行。

    • 对多浏览器(Chrome、Edge、Firefox)支持好,尤其在政务系统这种兼容性差的场景下,可以快速切换浏览器引擎。

  • 用途

    • 自动登录社保系统(处理验证码)

    • 自动填写表单、上传 Excel

    • 自动导出社保数据

    • 自动登录 CSDN、发布文章


2. 数据生成

  • 数据库 → 文章生成
    用 C# 连接数据库,取出数据,调用 AI API(OpenAI、DeepSeek、讯飞星火等) 生成文章内容。

  • 文章排版
    可以用 Markdown 模板(C# 模板引擎 RazorLight)生成格式化的文章,再由自动化脚本发布到 CSDN。


3. 产品化考虑

  • UI 界面

    • Windows 桌面端:WPF / WinForms

    • Web 后台管理:Blazor Server

  • 任务调度

    • Quartz.NET(定时任务,定时执行自动化任务)

  • 账号配置

    • 用户在 UI 里配置社保局账号、上传模板路径等

  • 日志 & 报错

    • NLog/Serilog 记录每次任务运行状态,异常截图存档

  • 部署

    • 可打包成 EXE,直接在客户电脑上运行

    • 可部署到云端(支持远程执行)


二、针对你的三个需求的技术落地

1. 自动报社保

技术点

  • Playwright 自动化 → 登录社保网站

  • 处理验证码(OCR + 打码平台)

  • 下载你系统里的 Excel(直接用 HTTP 请求,不一定需要自动化)

  • 上传 Excel 到社保局

  • 填写附加信息(如果需要)

  • 提交并截图保存凭证

Playwright 上传 Excel 示例(C#):

csharp

await page.SetInputFilesAsync("input[type='file']", @"C:\数据\社保报表.xls"); await page.ClickAsync("#submitBtn");


2. 查询社保局数据并导出

技术点

  • Playwright 登录社保局

  • 导航到数据查询页面

  • 自动选择查询条件

  • 点击导出按钮

  • 下载文件并存储到指定目录

  • 可选:自动解析 Excel,导入数据库

Playwright 等待下载示例

csharp

var downloadTask = page.WaitForDownloadAsync(); await page.ClickAsync("#exportBtn"); var download = await downloadTask; await download.SaveAsAsync(@"C:\数据\社保数据.xls");


3. 数据库生成文章并发布

技术点

  • C# 连接数据库(Dapper 或 EF Core)

  • 生成文章:可用 AI API(例如 GPT-4)生成自然语言内容

  • Playwright 自动登录

  • 自动填写文章标题、内容、标签并发布

Playwright 发布示例

csharp

复制编辑

await page.GotoAsync("https://www.baidu.com/creation/editor"); await page.FillAsync("textarea[placeholder='请输入文章标题']", "自动化技术方案分享"); await page.FillAsync(".editor-content", "这是自动生成的文章内容..."); await page.ClickAsync("button:has-text('发布')");


三、为什么我建议 Playwright 而不是纯 Selenium

对比项PlaywrightSelenium
稳定性高,自动等待页面元素需手动写等待逻辑
文件上传原生支持 SetInputFiles依赖 SendKeys
事件监听有(下载、弹窗、对话框)需要额外写逻辑
浏览器兼容性Chrome、Edge、Firefox、WebKitChrome、Edge、Firefox、IE
并发性能好(多实例运行快)一般
代码风格现代化 API偏旧


四、我建议的产品架构

css

[UI层] → WPF / Blazor Server ↓ [业务逻辑层] → 任务调度(Quartz.NET) / 数据生成(AI API) ↓ [自动化执行层] → Playwright for .NET ↓ [数据层] → 数据库(SQL Server / MySQL) / Excel


五、Python 作为补充

虽然你的主语言是 C#,但有些环节用 Python 会更方便:

  • 验证码识别(Python OCR 比 .NET 成熟)

  • 批量 Excel 处理(Pandas 很强)

  • AI 接口调用(Python SDK 比 .NET 版本多)

可以用 Python 做独立模块,再用 C# 调用 Python 脚本(Process.Start 或 Python.NET)。


六、我的建议

  • 核心自动化 → Playwright for .NET

  • 数据生成 → C# + AI API

  • 验证码识别 → Python OCR(可嵌入 C#)

  • 产品化 → WPF + Quartz.NET + 日志记录

  • 发布形式 → 本地客户端 + 云端同步任务日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/95006.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【celeba】-数据集的介绍

CelebA 数据集在 MTCNN 中的使用 1 数据集结构 CelebA_副本/ ├── Anno/ │ ├── list_bbox_celeba.txt # 边界框 │ ├── list_landmarks_celeba.txt # 5 关键点 │ ├── list_attr_celeba.txt # 40 属性 │ └── identity_CelebA.txt …

解读 GPT-5:从“博士级 AI 专家”能力到 OpenAI API Key 获取与实践(提示工程→性能调优全流程)

GPT-5深度解读:一位“博士级专家”的诞生与思考第一部分:新范式——化繁为简的统一智能体 OpenAI的GPT-5,远不止是一次常规的模型升级。它的发布,标志着一种颠覆性的架构思想变革:从过去那个让用户在各种“Turbo”、“…

8.3.1 注册服务中心Etcd

etcd是什么 etcd 是一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供访问。通过分布式锁, leader选举保障可靠的分布式协同。 etcd 特点 完全复制,集群中的每个节点均拥有全量数据 强一致性,etcd通过raft共识算法…

异或循环冗余

异或代码CRC8-ITU例程比较计算CRC16异或改进测试重点代码 def fun_crc(datas):crc 0xFF poly 0x07 for i in range(len(datas)):for j in range(7, -1, -1):if (crc & 0x80) 0x80: crc (crc << 1) ^ polyelse:crc (crc << 1)if (datas[i] & 2**j):#值…

一款轻量、免费、无广告,强大的演示工具,支持屏幕放大、涂鸦、截图、录屏

软件介绍 ZoomIt&#xff0c;是一款轻量、免费、无广告&#xff0c;强大的演示工具&#xff0c;支持屏幕放大、涂鸦、截图、录屏等。在系统托盘中不显示的运行&#xff0c;可自定义快捷键&#xff0c;使用方面。 软件基础功能 屏幕放大&#xff1a;按下快捷键“Ctrl1”可进入…

从街亭失守看管理

最近看了《三国演义》&#xff0c;重温了街亭失守事件&#xff0c;从马谡最耀眼的登场来看就是&#xff0c;火烧藤甲兵计策和诸葛亮不谋而合&#xff0c;说明马谡确实是有真材实料的&#xff0c;但在守街亭的任务上&#xff0c;诸葛亮也踌躇过又对先帝的遗言“马谡不可重用”记…

全面解析 URL 重定向原理:从协议、实现到安全实践

一、什么是 URL 重定向&#xff1f; URL 重定向&#xff08;URL Redirection&#xff09;是 Web 技术中一种将用户请求的 URL 自动转向另一个目标 URL 的机制。用户可能完全不会察觉跳转发生&#xff0c;因为浏览器在幕后完成了一切。 重定向通常用于以下场景&#xff1a; 网…

多任务 Transformer 模型的高效任务间注意力

抽象 在计算机视觉和更广泛的深度学习领域&#xff0c;Transformer 架构已被公认为许多应用程序的最先进技术。然而&#xff0c;对于多任务学习&#xff0c;与单任务模型相比&#xff0c;可能需要更多的查询&#xff0c;考虑到实际的硬件限制&#xff0c;它的多头注意力通常接近…

QT的常用控件说明

文章目录基本的代码的模板Label控件font字体相关Button 控件CheckBox 控件Radio控件ComboBox控件LineEdit 控件基本的代码的模板 class MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs) # 调用父类初始化方法# 声明窗口实例# 代…

5Python异常处理与模块导入全指南

目录 什么是异常&#xff1f; 异常的捕获方法&#xff1a; 为什么要捕获异常&#xff1f; 捕获异常的语法&#xff1a; 异常的else和finally语法&#xff1a; 什么是异常&#xff1f; 异常就是程序运行过程中出现了错误&#xff0c;也就是我们常说的出bug了-。- 异常的捕…

区块链密码学简介

区块链密码学简介 一、对称密码算法 概述 对称密码算法的主要特点是使用相同的密钥进行加密和解密。这类算法根据其加密方式大致可以分为两类:流密码和分组密码。区块链技术主要采用分组密码。流密码以数据流的形式逐位或逐字节加密,而分组密码则将数据分成固定大小的块进行…

GridKernalGateway

GridKernalGateway 是 Apache Ignite 架构中一个关键的安全与状态管理组件&#xff0c;它的作用是 “在公共 API 和内部内核&#xff08;kernal&#xff09;之间建立安全、可控的访问通道”。 我们可以把它理解为一个 “门卫 状态哨兵”&#xff0c;确保外部调用不会在 Ignite…

MySQL索引、B+树相关知识总结

MySQL索引、B树相关知识汇总一、有一个查询需求&#xff0c;MySQL中有两个表&#xff0c;一个表1000W数据&#xff0c;另一个表只有几千数据&#xff0c;要做一个关联查询&#xff0c;如何优化&#xff1f;1、为关联字段建立索引2、小表驱动大表二、b树和b树的区别1、更高的查询…

Java学习进阶 -- 泛型的继承和通配符及综合练习

首先&#xff0c;泛型不具备继承性&#xff0c;但是数据具备继承性1.核心概念解析泛型不具备继承性即使类型A是类型B的子类&#xff0c;Generic<A>也不是Generic<B>的子类这是Java泛型的类型安全设计&#xff0c;防止不安全的类型转换数据具备继承性泛型容器中的元…

如何实现在多跳UDP传输场景,保证单文件和多文件完整传输的成功率?

如何实现在多跳UDP传输场景&#xff0c;保证单文件和多文件完整传输的成功率&#xff1f; 一、前言 UDP&#xff08;User Datagram Protocol&#xff09;是一个轻量、无连接的传输协议&#xff0c;广泛用于低延迟、高吞吐的应用中&#xff0c;如视频流、实时游戏等。然而&…

【Spring IoC 核心实现类详解:DefaultListableBeanFactory】

Spring IoC 核心实现类详解&#xff08;源码原理&#xff09;作为 Spring 的灵魂&#xff0c;IoC 容器&#xff08;Inversion of Control&#xff09;是整个框架的核心。 那么 IoC 的“心脏”到底是哪个类&#xff1f;它是怎么管理和装配 Bean 的&#xff1f;本文将从源码层面深…

为什么开启JWT全局认证后,CSRF失败会消失?

这是因为 JWT认证与CSRF校验的设计逻辑完全不同&#xff0c;当全局启用JWT认证后&#xff0c;Django的CSRF校验会被“绕过”或不再生效&#xff0c;具体原因如下&#xff1a; 核心原因&#xff1a;JWT认证不依赖Cookie&#xff0c;无需CSRF保护 1. CSRF的作用场景 CSRF攻击的前…

宝龙地产债务化解解决方案二:基于资产代币化与轻资产转型的战略重构

一、行业背景与代币化创新趋势1.1 房地产债务危机现状宝龙地产&#xff08;01238.HK&#xff09;截至2024年中债务总额达584亿元&#xff0c;其中50.7%为一年内到期债务&#xff0c;但现金储备仅89.47亿元&#xff0c;短期偿债覆盖率不足30%。2025年2月境外债务重组计划因债权人…

深信服GO面试题及参考答案(下)

Kubernetes 与容器 Kubernetes(简称 K8s)是容器编排平台,而容器是轻量级的虚拟化技术,两者紧密关联但定位不同,容器是 K8s 管理的核心对象,K8s 为容器提供了完整的生命周期管理、扩展和运维能力。 容器技术(如 Docker)通过 Linux 命名空间(Namespace)、控制组(CGro…

RAGFoundry:面向检索增强生成的模块化增强框架

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 1. 背景与动机 大型语言模型&#xff08;LLMs&#xff09;存在 知识静…