Python 课程12-Python 自动化应用

前言

        Python 自动化应用 可以帮助开发者节省时间和精力,将重复性、手动操作变为自动化脚本。例如,Python 可以用于自动化处理文件、邮件、生成报表,甚至可以控制浏览器执行复杂的网页操作任务。借助 Python 的强大库和工具,可以轻松地实现这些自动化任务。

        在本教程中,我们将介绍如何使用 Python 自动化处理日常任务,包括文件操作、发送邮件和生成报表等。我们还将展示如何使用 Selenium 进行网页操作自动化,帮助你实现浏览器自动化任务,如自动登录、表单提交等。


目录

  1. Python 自动化文件与报表处理

    • 自动化处理文件(文件读写、复制、删除)
    • 使用 Python 生成 Excel 报表
    • 自动化生成 PDF 报告
    • 使用 smtplib 自动化发送邮件
  2. 使用 Selenium 进行网页操作自动化

    • 什么是 Selenium?
    • 安装与设置 Selenium
    • 自动化浏览器操作(打开网页、点击、表单填写)
    • 自动化抓取网页内容
    • 示例:使用 Selenium 自动登录网站

1. Python 自动化文件与报表处理

自动化处理文件(文件读写、复制、删除)

Python 的 osshutil 模块允许我们自动化处理文件和文件夹,例如创建、读取、复制、移动和删除文件。

文件读写:

# 打开并读取文件
with open('example.txt', 'r') as file:content = file.read()print(content)# 写入文件
with open('output.txt', 'w') as file:file.write("This is an automated message.")

复制、移动和删除文件:

import shutil
import os# 复制文件
shutil.copy('example.txt', 'backup_example.txt')# 移动文件
shutil.move('backup_example.txt', 'folder/backup_example.txt')# 删除文件
os.remove('folder/backup_example.txt')

使用 Python 生成 Excel 报表

openpyxl 是一个常用的 Python 库,用于操作 Excel 文件,适合用于生成自动化的 Excel 报表。

安装 openpyxl:

pip install openpyxl

生成 Excel 文件:

from openpyxl import Workbook# 创建一个新的 Excel 文件
wb = Workbook()
ws = wb.active# 添加标题行
ws.append(['Name', 'Age', 'Salary'])# 添加数据行
data = [['Alice', 30, 50000],['Bob', 24, 40000],['Charlie', 29, 45000]
]for row in data:ws.append(row)# 保存 Excel 文件
wb.save('report.xlsx')

自动化生成 PDF 报告

可以使用 reportlab 库自动生成 PDF 文件。

安装 reportlab:

pip install reportlab

生成 PDF 文件:

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas# 创建 PDF 文件
c = canvas.Canvas("report.pdf", pagesize=letter)
c.drawString(100, 750, "Automated PDF Report")
c.drawString(100, 720, "Name: Alice")
c.drawString(100, 700, "Salary: $50,000")
c.save()

使用 smtplib 自动化发送邮件

smtplib 库允许我们通过 SMTP 协议发送电子邮件。

自动发送电子邮件:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipartdef send_email():sender_email = "your_email@gmail.com"receiver_email = "receiver_email@gmail.com"password = "your_password"message = MIMEMultipart("alternative")message["Subject"] = "Automated Email"message["From"] = sender_emailmessage["To"] = receiver_email# 邮件内容text = "This is an automated email."part1 = MIMEText(text, "plain")message.attach(part1)# 连接到 Gmail SMTP 服务器server = smtplib.SMTP_SSL("smtp.gmail.com", 465)server.login(sender_email, password)server.sendmail(sender_email, receiver_email, message.as_string())server.quit()send_email()

        你需要在上面的代码中替换 your_email@gmail.comyour_password,并确保你的邮箱设置允许通过 SMTP 发送邮件。


2. 使用 Selenium 进行网页操作自动化

什么是 Selenium?

Selenium 是一个强大的自动化工具,可以用于控制浏览器执行各种操作,如打开网页、填写表单、点击按钮、抓取网页内容等。它适用于网页测试,也可以用于自动化网页操作任务。

安装与设置 Selenium

安装 Selenium:

pip install selenium

下载浏览器驱动(例如 ChromeDriver):

  • 访问 ChromeDriver 下载页面,下载与你的 Chrome 版本匹配的驱动程序。
  • 解压并将 chromedriver 文件路径添加到系统环境变量中。

自动化浏览器操作(打开网页、点击、表单填写)

使用 Selenium 打开网页并进行简单的操作:

from selenium import webdriver
from selenium.webdriver.common.by import By# 设置 Chrome 浏览器
driver = webdriver.Chrome()# 打开网页
driver.get("https://www.example.com")# 查找元素并进行点击操作
element = driver.find_element(By.XPATH, '//*[@id="submit-button"]')
element.click()# 填写表单
input_box = driver.find_element(By.NAME, 'username')
input_box.send_keys("your_username")# 关闭浏览器
driver.quit()

自动化抓取网页内容

Selenium 也可以用于自动化抓取网页数据,例如获取网页上的文本或链接。

# 打开网页
driver.get("https://www.example.com")# 抓取网页标题
title = driver.title
print(f"Page title is: {title}")# 抓取特定元素的文本
element = driver.find_element(By.CSS_SELECTOR, 'h1')
print(f"Page heading: {element.text}")

示例:使用 Selenium 自动登录网站

以下是一个通过 Selenium 自动登录网站的示例(以 GitHub 为例):

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By# 启动 Chrome 浏览器
driver = webdriver.Chrome()# 打开 GitHub 登录页面
driver.get("https://github.com/login")# 输入用户名
username = driver.find_element(By.ID, "login_field")
username.send_keys("your_username")# 输入密码
password = driver.find_element(By.ID, "password")
password.send_keys("your_password")# 提交登录表单
password.send_keys(Keys.RETURN)# 等待页面加载并获取当前页面 URL
driver.implicitly_wait(10)  # 设置隐式等待
print(f"Current URL: {driver.current_url}")# 关闭浏览器
driver.quit()

        此示例中,Selenium 控制 Chrome 浏览器打开 GitHub 登录页面,自动输入用户名和密码并提交表单,完成自动登录。


结论

        通过本教程,我们展示了如何使用 Python 自动化处理文件、生成 Excel 和 PDF 报告,以及通过 smtplib 发送自动化邮件。我们还深入探讨了 Selenium 在网页操作自动化中的应用,展示了如何自动登录网站、抓取网页内容以及进行浏览器交互。

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

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

相关文章

python学习——对无人机影像有RGB转换到HSV

问题描述 最近需要对无人机影像中绿色植被信息进行提取,查看相关论文,发现用的比较多的就是HSV色彩转换方法,动手实践一下。 解决思路 #mermaid-svg-5ejGodIusPv6zFVS {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…

浪潮信息首推3秒智能控温!告别服务器开机噪音

在当前的数据中心运维实践中,运维人员在部署服务器时常被“飞机起飞”般的开机噪音所困扰。服务器刚刚接通电源,其内部元件尚处于预热待命状态,而风扇却已全速运转,这不仅加剧了噪音污染,还拖慢了启动速度,…

了解华为云容器引擎(Cloud Container Engine)

1.什么是云容器引擎? 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎是一个企业级的…

【Python机器学习】循环神经网络(RNN)——超参数

几乎所有模型都可以根据数据和样本进行调整,它们都有各自的优势和相应的利弊权衡方式。寻找最优超参数集通常是一个棘手的问题,但是人类的直觉和经验可以为我们提供解决问题的方法。比如之前的例子: #设置任意输入序列的最大长度 maxlen100 …

鸿蒙 ArkUI组件二

ArkUI组件(续) 文本组件 在HarmonyOS中,Text/Span组件是文本控件中的一个关键部分。Text控件可以用来显示文本内容,而Span只能作为Text组件的子组件显示文本内容。 Text/Span组件的用法非常简单和直观。我们可以通过Text组件来显…

多模态大语言模型综述(中)-算法实用指南

本文是Multimodal Large Language Models: A Survey的译文之算法实用指南部分。 上:摘要、概念与技术要点实用指南中:算法实用指南(本文)下: 任务的实用指南(应用)、挑战等 原始信息 标题: Multimodal Large Language Models: A Survey译文: 多模态大…

拓扑排序算法

拓扑排序算法 上图意思为在我想要完成C7这件事之前我必须先完成事件C1,在完成C5这件事之前我必须先完成事件C6和C3.由图可以提看出拓扑序列是不唯一的。 有向图拓扑排序算法基本步骤: 1.从图中选择一一个入入度为0的顶点, 输出该顶点; 2.从图中删除该…

MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例

目录 深入理解 JavaScript 中的 MutationObserver:原理与实战案例 一、MutationObserver 简介 二、MutationObserver 的工作原理 1、基本用法 2、observe 方法的配置项 三、实战案例 案例 1:监控动态内容加载 案例 2:监控属性变化 案…

springboot 项目获取 yaml/yml (或 properties)配置文件信息

文章目录 springboot 项目获取配置文件信息前言1、 Autowired 注入 Environment类2、基础用法,使用Value注解直接注入配置信息3、进阶方法(推荐使用)拓展:springboot 集成配置中心 - 以 Apollo 为例 springboot 项目获取配置文件信…

通信工程学习:什么是接入网(AN)中的TF传送功能

接入网(AN)中的TF传送功能 在通信工程中,TF(Transfer Function)传送功能是指为接入网(AN)不同位置之间提供通道和传输介质,以实现数据的有效传输。以下是关于TF传送功能的详细解释&a…

PMP--一模--解题--91-100

文章目录 13.干系人管理91、 [单选] 在项目执行期间,一名外部干系人反对一项重大范围变更。除非重新评估干系人的决定,否则项目进展将受到影响。项目经理下一步该怎么做? 5.范围管理92、 [单选] 一客户给你一复杂项目的采购工作说明书&#x…

配置全新服务器深度学习一套流程

目录 1.安装anaconda2.配置cuda3.配置cudnn4.配置新的pytorch环境5.安装rdkit包6.小问题记录 1.安装anaconda 直接参考视频 总结: 1.下载anaconda安装包,尽量不下载最新的版本 2.bash 对应安装包,一直回车,yes 3.配置环境vim ~/.…

实战千问2大模型第三天——Qwen2-VL-7B(多模态)视频检测和批处理代码测试

画面描述:这个视频中,一位穿着蓝色西装的女性站在室内,背景中可以看到一些装饰品和植物。她双手交叉放在身前,面带微笑,似乎在进行一场演讲或主持活动。她的服装整洁,显得非常专业和自信。 一、简介 阿里通义千问开源新一代视觉语言模型Qwen2-VL。其中,Qwen2-VL-72B在大…

在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container

ingress是一个API资源。 其核心作用是nginx网页服务器。 当客户端访问服务器不同的url时, 用不同的location提供服务。 在k8s之外,nginx的配置一般如下: http {server {listen 80;server_name localhost;location / {root html; …

鸿蒙开发入门day19-使用NDK接口构建UI(一)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,还请三连支持一波哇ヾ(@^∇^@)ノ) 目录 NDK接口概述 整体架构 开发流程 接入ArkTS页面 占位组件 NDK组…

unity3d入门教程六

unity3d入门教程六 15.1预制体15.2编辑预制体15.3在场景中编辑15.4动态创建实例15.5实例的销毁16.1(练习)子弹发射16.2定时器16.3键盘事件 15.1预制体 火神山10天建成,使用了预制体技术 一个个小房间都是事先建造好的,最后吊车装…

ICPC网络赛 以及ACM训练总结

一、训练反思 关于我自己暑假期间训练的反思,我承认无论是因为什么原因,我自己浪费我整整一个暑假的时间,暑假期间正是我们集训的关键时期,这期间没有任何的事情来打扰我们学习,而我却熬夜,白天训练懈怠&a…

在服务器上开Juypter Lab教程(远程访问)

在服务器上开Juypter Lab教程(远程访问) 文章目录 在服务器上开Juypter Lab教程(远程访问)一、安装anaconda1、安装anaconda2、提权限3、运行4、同意协议5、安装6、是否要自动初始化 conda7、结束8、检查 二、Anaconda安装Pytorch…

python 自动化测试接口

比如我们要测试接口:identity/chatRecords/pages 已在Postman中有,那我们就可以直接从里面复制出Python脚本 新建: pagerequest.py import requests import jsonurl "http://192.168.31.132:70/identity/chatRecords/pages"payl…

基于AgentUniverse在金融场景中的多智能体应用探索

基于AgentUniverse在金融场景中的多智能体应用探索 1.基于大模型智能体超级状态机 智能体、多智能体都是当下的技术热点,但作为一个技术人应该理解,所有的技术都有自己所针对的问题、及其能力边界,并不存在普适的、放诸业务场景皆 work 的技术方案。在这里尝试区分,从大模…