技术分享
🗒️Autofill:Excel到网页的填充脚本
00 min
2024-7-6
2024-10-20
type
slug
status
date
summary
tags
category
icon
password

Autofill:Excel到网页的填充脚本

在当今快节奏的工程项目管理中,效率和准确性至关重要。本文将为您介绍一个创新的Python脚本,它巧妙地解决了工程检查申请(Request for Inspection, RFI)流程中的一个常见痛点:繁琐的手动数据输入。这个脚本不仅能大幅提高RFI提交的效率,还能显著降低人为错误的风险。让我们深入了解这个强大工具的细节。

背景:RFI流程的挑战

在大型工程项目中,RFI是确保质量控制和项目进度的关键环节。然而,传统的RFI提交方式往往涉及大量的手动数据输入,这不仅耗时,还容易出错。特别是在需要批量提交RFI的情况下,这个问题更加凸显。

解决方案:自动化脚本

为了应对这一挑战,作者本人开发了一个专门的Python脚本。这个脚本能够:
  1. 从预先准备的Excel文件中提取RFI数据
  1. 解析网页结构,获取必要的表单元素ID
  1. 自动向指定的web服务器发送POST请求,完成RFI的在线提交
这种自动化方法不仅大大提高了效率,还确保了数据输入的一致性和准确性。

技术细节

核心功能

  1. 数据提取:使用pandas库从Excel文件中读取RFI信息。
  1. HTML解析:通过lxml库解析本地HTML文件,获取关键的表单元素ID。
  1. 自动提交:利用requests库模拟浏览器行为,向服务器发送POST请求。

使用前提

要充分利用这个脚本,您需要:
  • 一个结构化的Excel文件,包含所有RFI数据
  • 目标网页的HTML结构文件(id.html)
  • 有效的网站cookies
  • Python环境,以及lxml、requests、pandas库

配置和运行

使用这个脚本只需几个简单步骤:
  1. 调整Excel文件路径
  1. 设置HTML文件路径
  1. 更新cookies值
  1. 运行脚本
脚本会自动遍历Excel中的每行数据,为每条记录生成并提交一个RFI。

优势分析

  1. 效率倍增:自动化流程显著减少了数据输入时间。
  1. 错误最小化:消除了人工输入可能带来的失误。
  1. 批量处理能力:能够一次性处理大量RFI,特别适合大型项目。
  1. 灵活性:易于根据项目需求修改Excel数据。

实施注意事项

尽管这个脚本带来了诸多便利,使用时仍需注意以下几点:
  1. 严格遵循Excel数据格式要求,确保与网页表单字段匹配。
  1. 定期更新cookies,保证脚本的持续有效性。
  1. 遵守目标网站的使用条款和政策。
  1. 定期检查和更新HTML结构文件,以适应可能的网页变更。

如何使用本人脚本:首先去github上下载我的代码文件:https://github.com/entropy2023/Autofill-in-DWSS

 
notion image
#第一个文件3_test.xlsx文件是你提前准备要填写的内容
notion image
把需要填写的信息填入这个excel表格里。第一步完成
#第三个文件id.html文件是你要把网站中对应得id提取出来,做成一个HTML文件。目的是:通过lxml库解析本地HTML文件,获取关键的表单元素ID。
  • 打开浏览器(推荐使用 Chrome )。
  • 导航到包含 RFI表单的网页。
  • 右击页面空白处,选择"查看页面源代码"或按 Ctrl+U(Windows/Linux)或 Cmd+U(Mac)。
  • 在新打开的标签页中,你会看到网页的 HTML 源代码。
  • 按 Ctrl+S(Windows/Linux)或 Cmd+S(Mac)保存该页面。
  • 在保存对话框中:
    • 选择保存位置(建议与你的 Python 脚本在同一文件夹)
    • 将文件名改为 "id.html"
    • 确保保存类型为 "网页,仅 HTML"(或类似选项)
  • 点击"保存"。
其实我已经做一个完成得id.html文件,直接使用即可。上述是制作得原理和目的。
notion image
#第二个文件是demo2.py文件,
该文件利用了以下技术以及原理如下:
  1. Python 编程:整个脚本使用 Python 语言编写。
  1. 数据处理:
      • 使用 pandas 库读取和处理 Excel 文件数据。
      • 使用 lxml 库解析 HTML 文件,提取必要的元素 ID。
  1. Web 自动化:
      • 使用 requests 库模拟 HTTP POST 请求,自动提交表单数据。
  1. 日期和时间处理:使用 Python 的 datetime 模块(通过 pandas)处理日期和时间格式。
  1. 字符串操作:处理和格式化各种数据字段。
  1. 条件逻辑:使用 if-else 语句来处理不同的工作类别和子类别。
  1. 循环处理:使用 for 循环遍历 Excel 数据的每一行。
  1. 错误处理:虽然在给定的代码中没有明确的错误处理,但在实际使用中应该考虑添加异常处理机制。
  1. Web 协议:利用 HTTP 协议与服务器通信,包括设置请求头、cookies 等。
notion image
如何使用
配置代码运行环境,首先
  • 安装VSCode:
    • 从官方网站 (https://code.visualstudio.com/) 下载并安装VSCode。安装一个编译器,VScode或者PyCharm 编辑器等任一一款编译器
  • 安装Python扩展:
    • 打开VSCode
    • 点击左侧边栏的扩展图标(方块图标)
    • 搜索"Python"
    • 安装由Microsoft提供的Python扩展
    • 创建虚拟环境:
    • 打开VSCode的终端(Terminal > New Terminal)
    • 运行以下命令创建虚拟环境:
      • 复制
        python -m venv myenv
    • 激活虚拟环境:
      • Windows: myenv\Scripts\activate
      • macOS/Linux: source myenv/bin/activate
    • 安装所需的库:
      • 在激活的虚拟环境中,运行以下命令:
        pip install lxml requests pandas openpyxl
    • 打开Python文件:
      • 在VSCode中,打开包含您的Python脚本的文件夹
      • 打开 demo2.py 文件
    • 配置Python解释器:
      • Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)打开命令面板
      • 输入 "Python: Select Interpreter"
      • 选择您刚才创建的虚拟环境
    • 准备必要的文件:
      • 确保 test.xlsxid.html 文件与 demo2.py 在同一目录下。
        notion image
    • 修改cookies:
      • 在代码中找到 cookies 字典,用您自己的有效cookies替换现有的值。
        notion image
        在DWSS页面点击鼠标右键,选择“检测”,进入页面控制台,选择“application”找到Cookie的ASP.NET_SessionId和eirs对应的value,如上图上示,然后,修改demo2.py文件的'Cookie': 'eirs=!ahhg2Qjgd/VCmSwAz5JTUhgTkMNW57ytrhSVXwGaupbk/6tComrHpFyr4VBBFUFoXdd68rUNlPTIJtg=; ASP.NET_SessionId=yxg4ltfy2ilt1z2pvu2ovmzg',
        notion image
    • 运行脚本:
      • 右键点击编辑器中的任意位置
      • 选择 "Run Python File in Terminal"
    • 查看输出:
      • 脚本的输出将显示在VSCode的集成终端中。
        notion image
        程序正常执行任务。
        结果如下:
        notion image
notion image

假如我这个项目帮到你,希望你帮我的项目点一下star,非常感谢。

notion image
在工程管理不断evolve的今天,像这样的自动化工具正在成为提高效率、减少错误的关键。通过将重复性的数据输入工作交给脚本,工程师们可以将更多精力投入到需要人类智慧和创造力的任务中。这不仅提高了工作效率,也为整个项目管理带来了质的飞跃。