Python 课程12-Python 自动化应用

news/2024/9/25 0:47:27/

前言

        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.ppmy.cn/news/1530035.html

相关文章

达梦-华为鲲鹏ARM架构下性能测试最佳实践

一、测试综述 1.1 测试目的 本次测试的目的是验证达梦数据库,在鲲鹏服务器下,不同服务器参数基于sysbench性能压力测试的表现。本次参数是根据为华为鲲鹏arm服务器调优十板斧内建议值调整 成长地图-鲲鹏开发套件开发文档-鲲鹏社区 1.2 通用指标 指标…

信息安全工程师(8)网络新安全目标与功能

前言 网络新安全目标与功能在当前的互联网环境中显得尤为重要,它们不仅反映了网络安全领域的最新发展趋势,也体现了对网络信息系统保护的不断加强。 一、网络新安全目标 全面防护与动态应对: 目标:建立多层次、全方位的网络安全防…

VSCode集成Python环境搭建配置详细步骤

1. 安装VSCode 在开始我们的Python编程之旅前,首先需要准备好我们的开发工具——Visual Studio Code,简称VSCode。VSCode是一款由微软开发的轻量级但功能强大的源代码编辑器,支持多种编程语言,并且拥有丰富的扩展生态系统。接下来,我们将一步步教你如何下载、安装以及汉化…

基于python的django微博内容网络分析系统,实现文本划分词结构

本项目旨在开发一个基于Python的Django框架的微博内容网络分析系统,聚焦于微博文本的分词处理、名词提取和主成分分析。该系统通过数据收集与预处理、分词及结构化文本分析,为舆情监测、话题分析和用户行为研究提供了一体化的解决方案。 主要功能包括&a…

基于微信小程序的剧本杀游玩一体化平台

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的剧…

linux的redir命令实现端口转发

文章目录 linux的redir命令实现端口转发redirredir 和 ssh端口转发的功能比较redir安装redir使用方式SSH 端口转发 linux的redir命令实现端口转发 redir 官方github:https://github.com/troglobit/redir 官方文档:https://manpages.debian.org/testing…

【d46】【Java】【力扣】876.链表的中间结点

思路 先获得总体长度, 再得到中间节点 的索引,,这里的索引是从1开始的索引,而不是从0开始的索引(这种理解方式更简单) 排错:另一个思路:将链表都放进list,获得中间的数字,然后遍历…

Call OpenAI API with Python requests is missing a model parameter

题意:使用 Python requests 调用 OpenAI API 时缺少 model 参数。 问题背景: Im trying to call OpenAI API from Python. I know they have their own openai package, but I want to use a generic solution. I chose the requests package for its f…