Python+Selenium 网页自动化 exe 程序编程实现(最全避坑指南)

news2025/1/10 20:47:07

前言

在我的日常工作中,经常需要在内网(不连接互联网)的网页版办公系统中进行抓取网页数据、修改表单等大量重复性的操作。我就想是否可以编写出自动化的工具,将这些日常琐碎的操作变得轻松而高效。虽然本人非计算机相关专业,但兴趣使然,使我十分热爱编程,因此对编程稍有些了解,我知道类似的功能是一定能实现的。 都说懒惰是人类进步的动力,这是一点没有说错啊。 因为内网的局限,我因地制宜地采用 Microsoft Excel 2016 版中的 VBA 实现了大多数自动化功能,可以批量打印、自动录入,节省了很多时间。 但是这样的自动化程序受 Windows 系统、Microsoft Excel、IE 浏览器、计算机硬件以及诸多系统和软件设置影响,可迁移性很差,使用起来难度很大。 所以我在想是否可以将这个自动化程序包装成为 .exe 格式的执行文件。 经过查阅资料和学习网页自动化视频,基本确定了通过 Python+Selenium 的方式来实现网页自动化功能。以下是我在

遇到的问题

在实践过程中,我遇到了一些问题,虽然最终都解决了,但过程中花费了大量的时间,所以我想将这些问题和解决方法写出来,节省大家的时间。这就是我写这篇文章的初心。 以下是一些常见问题及其解决方法:

1. 开发环境的安装和配置

在部署开发环境之前,首先要考虑是自动化软件的实际运行环境。 因为办公电脑只有内网、不连接互联网,绝大多数为 Windows7 系统,所以需要考虑兼容性,下载支持 Windows7 系统的开发软件。

欲善其事,必利其器。对于计算机基础不太好的我来说,肯定要选择一门学习成本不高,功能强大的编程语言,于是选择了 Python。

  • TODO:Windows7 环境下的 Python 版本如何选取?
  • TODO:如何安装 Python、设置环境变量?

有了编程语言,那还需要一个功能强大的代码编辑器,无论是 PyCharm、Sublime、VS Code,还是 Spyder、Jupyter 都可以,但考虑到我同时也需要使用其他编程语言,所以编辑器选择了 VS Code。

  • TODO:常用的 Python 的编辑器有哪些?
  • TODO:Windows7 环境下的 VS Code 版本如何选取?
  • TODO:如何安装 VS Code?

Python 和 VS Code 安装好后,需要为 Python 引入包括 Selenium 在内的许多第三方库,为 VS Code 安装包括 Python 在内的诸多插件。

  • TODO:Windows7 环境下的 Selenium 版本如何选取?Selenium 还需要考虑 IE 浏览器驱动的版本
  • TODO:在网页自动化的 EXE 项目中,需要引进哪些 Python 第三方库?
  • TODO:如何使用 pip 下载并离线安装 Python 第三方库?

这些都安装好后,还需要针对办公电脑使用的浏览器版本下载对应的浏览器驱动。

  • TODO:Google、FireFox、Edge、IE 等浏览器与浏览器驱动版本是如何对应的?

一开始我是想使用 Google 浏览器的,也下载了最后一版支持 Windows7 系统的 Google 浏览器,不过没想到网页版办公系统在 Google 浏览器中部分内容无法正常显示。所以最后还是下载的 IEDriverServer。根据官网文件 IEDriverServer 的 x64 版本有漏洞,所以无论办公电脑是32位还是64位,统一下载32位的 IEDriverServer_Win32

  • TODO:IE 各版本对应的 IE 浏览器驱动在哪下载?

2. 网页自动化操作(正在进行中,发现问题会及时更新)

上面的开发环境都配置好后,就可以开始编程了。 我们首先需要实现的是自动化打开浏览器、访问办公网站并登录办公帐号。

  • TODO:如何自动化打开浏览器?
  • TODO:如何选择网页元素?通过ID、类、Tagname、CSS选择器、Xpath选择器等方式进行选择
  • TODO:常见的自动化操纵网页元素的方法有哪些?

有时还需要模拟鼠标和键盘操作。

3. GUI界面设计(正在进行中,发现问题会及时更新)

程序功能逻辑实现以后,这么好的摸鱼工具不能独享呀,必须等推广普及,当大家都从中重复性操作中解放出来。因此就需要设计一个 GUI 界面,可以提供更加友好、直观、高效、可控的操作方式,帮助其它同事轻松上手完成复杂任务。

4. 软件打包(编程和界面设计完成后会更新)

使用 PyInstaller 第三方包进行打包。

说在最后

通过 Python+Selenium 实现网页自动化,可以极大地提高办公效率,减少重复工作的负担。在实践中,大家也会遇到安装配置等瓶颈,但通过灵活的定位方式、等待机制和验证码处理方法,这些问题都能得到解决。

网页自动化是一把双刃剑,方便自己的同时也需要谨慎使用,遵循网站和平台的各项规定和使用条款,以确保合法合规使用。

希望本篇最全避坑指南能够帮助你顺利进行 Python+Selenium 网页自动化的学习和实践。让我们一起享受自动化带来的便利吧!

欢迎在留言区留下你在网页自动化过程中遇到的问题和经验分享。谢谢阅读!

学习编程,从这里开始!

欢迎来到我的编程学习世界,这里是我与你分享编程知识、经验和技巧的地方。无论你是编程初学者还是有一定经验的开发者,都将为你带来灵感和启发。

关于我

我是一个热爱编程的自学者,通过多年的实践和不断的学习,我积累了丰富的编程经验,并且希望能与你一起成长。在这个博客中,我会分享我在编程领域的见解、学习心得和实用技巧,帮助你在编程的路上越走越远。

我的内容

在我的博客中,你将找到以下类型的内容:

  • 详细的编程教程和指南
  • 实用的代码示例和项目案例
  • 技术趋势和行业动态的分享
  • 对编程语言、工具和框架的评测和比较

如何联系我

如果你对我的内容感兴趣,或者有任何问题、建议或合作意向,都可以通过以下方式与我取得联系:

  • 邮箱:345797571@qq.com
  • 微信:KeepLearn666
  • 微信公众号:KeepLearner
  • 博客:终身学习者的家园

我非常期待与你一起探索编程的无限可能,让我们一起在编程的海洋中畅游吧!

终身学习者的家园

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

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

相关文章

OpenGL 纹理

1.简介 纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。 为了能够把纹理映射(M…

Day973.授权码许可类型中,为什么一定要有授权码? -OAuth 2.0

授权码许可类型中,为什么一定要有授权码? Hi,我是阿昌,今天学习的是auth2中为什么一定要有授权码的内容。 OAuth 2.0 的授权码许可类型,在小兔打单软件的例子里面,小兔最终是通过访问令牌请求到小明的店铺…

使用raspberry pi pico 制作红绿灯

需要的东西:一块面包版、一块raspberry pi pico、红绿黄led灯各一颗、220欧电阻3只、若干线 编程软件:thonny 操作系统:deepin 23 结果展示: 使用raspberry pi pico 制作红绿灯 from machine import Pin import utime yellowled…

4种整流电路和5种滤波电路

4种整流电路和5种滤波电路 基本电路:一般直流稳压电源都使用220伏市电作为电源,经过变压、整流、滤波后输送给稳压电路进行稳压,最终成为稳定的直流电源。这个过程中的变压、整流、滤波等电路可以看作直流稳压电源的基础电路,没有…

前端人必须知道的三种移动跨平台方案

跨平台技术是前端人必备技能,今天就来为大家解读一下近几年业界主流的三大移动端跨平台方案: Web 天然跨平台: Web App、PWA(Progressive Web Apps)、Hybrid App、PHA(Progress Hybrid App)都可…

Springboot自定义starter

文章目录 前言1.引入依赖1.1 json的转换1.2 xml转换依赖 2.定义Formate核心转化接口3.实现核心接口json和xml的转换3.1 json转换的实现3.2 xml转换的实现 4. FormatProperties类5.FormatAutoConfiguration 类配置6.提供一个MyFormatTemplate 模板类7.注册到springboot8.创建spr…

cavity开盖制作的辅助层别

cavity开盖工艺制作的辅助层别 数量:6个

suricata的flow流会话管理分析1

在《suricata中的线程管理分析》一文中,我们看到suricata中有FlowWorker和FlowManager两个线程来处理流表,说明流表的实现应该不简单,果然,看了流相关的这块代码后,发现确实有点复杂,代码估计得慢慢坑&…

[SpringMVC]Controller控制器、Interceptor拦截器、RestFul风格、异常处理、JSON数据格式与AJAX请求

文章目录 MVC理论基础配置环境并搭建项目Controller控制器配置视图解析器和控制器RequestMapping详解RequestParam和RequestHeader详解CookieValue和SessionAttrbutie重定向和请求转发Bean的Web作用域 RestFul风格Interceptor拦截器创建拦截器多级拦截器 异常处理JSON数据格式与…

C# Socket入门编程winform案例(附下载链接)

C# socket编程实现信息的接收(winform) 点我下载项目资源 服务器端: 第一步:建立一个用于通信的Socket对象 第二步:使用bind绑定IP地址和端口号 第三步:使用listen监听客户端 第四步:使用accep…

宝安西乡产业园变九年制学校,新增宅地、商地。

6月5日,宝安区城市更新和土地整备局发布《西乡街道盐田社区银田地块土地整备利益统筹项目土地整备规划(草案)》(以下简称草案)。 草案显示,该项目经过调整后: ● 新增一块二类居住用地&#xf…

王者荣耀战区活跃度排名怎么实现的?这篇文章给你答案!

🍉博客主页:阿博历练记 📖文章专栏:数据结构与算法 🚍代码仓库:阿博编程日记 🍥欢迎关注:欢迎友友们点赞收藏关注哦🌹 文章目录 🌈前言🍪堆的实现🔍1.堆的结构框架🔍2.堆…

通过ChatGPT打造10W+公众号文章

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加:keeepdance,备注:chatgpt。 这是一篇非常具有实操性的指南,可能会动到一些某些行业人的蛋糕,但我无益于此。我是…

pnpm的安装和使用

1 安装 1.1 安装教程 npm全局安装pnpm npm install -g pnpm设置镜像地址 获取当前配置的镜像地址 pnpm get registry设置新的镜像地址 pnpm set registry https://registry.npm.taobao.org设置包存放地址 pnpm config set store-dir E:/xxx1.2 安装问题 当在vscode上使用…

在labview里使用LabSQL连接ACCESS数据库

使用LabSQL连接ACCESS数据库 写在前面ODBC数据源管理器的配置LV软件里使用结束 写在前面 ACCESS数据库一般包含在Office组件里,安装完Office后就可以直接拿来使用,要求不高的场合适合使用。 LabSQL工具包直接放进LV的安装目录下,打开软件后在…

SpringBootWeb案例-1(下: 来源黑马程序员)

3. 员工管理 完成了部门管理的功能开发之后,我们进入到下一环节员工管理功能的开发。 基于以上原型,我们可以把员工管理功能分为: 分页查询带条件的分页查询删除员工新增员工修改员工 3.1 分页查询 3.1.1 基础分页 3.1.1.1 需求分析 我…

YOLOV8 Onnxruntime Opencv DNN C++部署

1.Opencv介绍 OpenCV由各种不同组件组成。OpenCV源代码主要由OpenCV core(核心库)、opencv_contrib和opencv_extra等子仓库组成。近些年,OpenCV的主仓库增加了深度学习相关的子仓库:OpenVINO(即DLDT, Deep Learning Deployment Toolkit)、open_model_zoo,以及标注工具CV…

C++标准模板库 队列容器的使用

队列:在数据结构中也成为操作受限的线性表,是一种只允许在表的一端插入,在另一端删除的线性表 特点:先进先出,像打饭《排在最前面的先买,后到的排在队尾,即删除在队头,插入在队尾》…

面试测试工程师,都要考察什么?

今年刚接触了(功能)测试工程师的面试工作,有遇到对信贷业务流程较熟悉的、工作内容纯测试app功能的、什么都接触过但是不够深入的,发现简历上写的东西和实际真的有点差距,面试也是一个艺术活。 如果你想学习自动化测试…

Security Onion(安全洋葱)开源入侵检测系统(ids)安装

文章目录 Security Onion介绍安装配置(最低)安装步骤web界面 Security Onion介绍 Security Onion是一款专为入侵检测和NSM(网络安全监控)设计的Linux发行版。其安装过程很简单,在短时间内就可以部署一套完整的NSM收集、检测和分析的套件。Se…