当前位置:首页>python>手把手教你通过 Python 自动化将 Excel 数据录入政务系统

手把手教你通过 Python 自动化将 Excel 数据录入政务系统

  • 2026-10-11 06:04:23
手把手教你通过 Python 自动化将 Excel 数据录入政务系统

告别重复劳动:手把手教你通过 Python 自动化将 Excel 数据录入政务系统

在许多企事业单位的日常工作中,**“填表”**是一项耗时耗力且极易出错的任务。特别是当需要将成百上千条 Excel 数据手工录入到政务系统、申报系统或内部 CRM 时,这种机械化的重复劳动往往令人精疲力竭。

作为一名技术教育者,我将通过本指南教你如何利用 Python 和 Selenium 技术,模拟人工浏览器操作,实现“一键自动化填表”。即使你没有编程基础,按照以下逻辑也能快速上手。

欢迎大家关注此公众号,后台点击按钮【免费资料】可免费获取【Python入门30节课】电子书

  1. 此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅,也感谢大家支持,我才有更新的动力


二、 核心工具与环境准备

在开始编写脚本之前,我们需要搭建一个稳定的自动化环境。

1. 软件清单

  • • Python 解释器:基础编程环境(建议版本 3.8+)。
  • • 浏览器:推荐使用 Google Chrome。
  • • WebDriver:浏览器驱动程序,它是代码控制浏览器的“桥梁”。
  • • 编辑器:推荐 VS Code 或 PyCharm。

2. 安装必要的库

打开终端(Command Prompt 或 Terminal),运行以下命令安装处理 Excel 和控制浏览器的插件:

pip install selenium pandas openpyxl
  • • Pandas: 用于高效读取和处理 Excel 数据。
  • • Selenium: 用于模拟鼠标点击、键盘输入等浏览器行为。

三、 自动化实现流程

我们将整个过程拆解为四个标准化步骤:读取数据 -> 启动浏览器 -> 定位元素 -> 循环填表。

第一步:准备 Excel 数据源

确保你的 Excel 文件(例如 data.xlsx)格式整齐。第一行应为表头(如:姓名、身份证号、申报金额)。

第二步:定位网页元素

这是最关键的一步。你需要告诉程序:“把 Excel 的 A 列填入网页的 B 框”。

  1. 1. 打开政务系统的填报页面。
  2. 2. 按下 F12 打开开发者工具。
  3. 3. 点击左上角的“箭头”图标,指向输入框。
  4. 4. 记录下该元素的 id、name 或 xpath(例如:id="username")。

第三步:编写自动化脚本

以下是一个通用的代码模板:

import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
import time

# 1. 加载 Excel 数据
df = pd.read_excel('data.xlsx')

# 2. 配置并启动浏览器
service = Service(executable_path='chromedriver.exe') # 确保驱动在当前目录
driver = webdriver.Chrome(service=service)

# 3. 访问目标系统
driver.get("https://example-gov-system.com/login")

# 这里建议手动完成登录流程,或在代码中加入登录逻辑
input("请在浏览器中手动登录并跳转到填报页面后,按回车键继续...")

# 4. 循环遍历 Excel 行进行填报
for index, row in df.iterrows():
try:
# 定位并填写姓名
        driver.find_element(By.ID, "name_field").clear()
        driver.find_element(By.ID, "name_field").send_keys(str(row['姓名']))

# 定位并填写身份证号
        driver.find_element(By.ID, "id_card_field").clear()
        driver.find_element(By.ID, "id_card_field").send_keys(str(row['身份证号']))

# 模拟点击提交按钮
        driver.find_element(By.ID, "submit_btn").click()

print(f"第 {index+1} 条数据:{row['姓名']} 已提交成功")

# 等待页面跳转或刷新,避免操作过快
        time.sleep(2)

# 如果提交后需要点击“新增”按钮回到填表页
# driver.find_element(By.LINK_TEXT, "新增下一条").click()

except Exception as e:
print(f"第 {index+1} 条数据处理失败,原因:{e}")
continue

print("所有数据处理完毕!")
driver.quit()

四、 关键技术难点与避坑指南

在实际操作政务系统时,你可能会遇到以下挑战:

1. 元素加载延迟(等待机制)

网页加载需要时间。直接运行代码可能会报错 NoSuchElementException。

  • • 解决方案:使用 WebDriverWait(显式等待),让程序等到某个按钮出现后再进行点击。

2. 验证码拦截

政务系统通常设有图形验证码。

  • • 解决方案:
    • • 半自动化:程序自动填好所有文字内容,停顿下来由人工输入验证码并点击提交。
    • • 进阶:接入第三方 OCR(光学字符识别)接口自动识别验证码。

3. Iframe 框架嵌套

有些旧版政务系统使用 iframe 标签。

  • • 解决方案:在操作前需先切换进入框架:driver.switch_to.frame("frame_id")。

4. 账号被封禁(操作频率)

如果填表速度过快(如 1 秒填完 10 个字段),系统可能会判定为恶意爬虫。

  • • 解决方案:在操作步骤之间加入 time.sleep(random.uniform(1, 3)),模拟人类真实的打字和思考停顿。

五、 结语

自动化填表不仅是为了提高效率,更是为了通过技术手段释放人力,让我们从繁琐的事务性工作中解脱出来,去关注更具创造性的任务。

安全提示:在自动化处理涉及敏感个人信息的政务数据时,请务必遵守相关法律法规及单位的信息安全管理规定,确保数据在本地安全运行,切勿将包含敏感信息的代码上传至公开平台。

如果你在实践中遇到具体报错,欢迎查阅 Selenium 官方文档 或在评论区交流。

最新文章

随机文章