在数字化办公时代,重复性任务占据了大量工作时间。利用 Python 编写自动化脚本,可以显著减少人工操作,提升工作效率。本文将介绍 10 个实用的 Python 自动化脚本示例,涵盖网页数据提取、多媒体处理、系统监控及移动端自动化等场景,并提供代码实现与注意事项。
1. 解析和提取 HTML
此脚本用于从网页 URL 中提取 HTML 内容并解析特定标签。适用于网络爬虫或需要抓取网页数据的场景。
依赖安装:
pip install gazpacho
代码实现:
import gazpacho
# 提取 HTML 内容
url = 'https://www.example.com/'
html = gazpacho.get(url)
print(html)
# 带请求头提取(模拟浏览器)
headers = {'User-Agent': 'Mozilla/5.0'}
html = gazpacho.get(url, headers=headers)
print(html)
# 解析 HTML
text = gazpacho.Soup(html)
# 查找单个标签
h1_tag = text.find('h1')
span_tag = text.find('span')
# 查找多个标签
paragraphs = text.find_all('p')
links = text.find_all('a')
# 按类名查找
class_tag = text.find('.class-name')
# 按属性查找
div_tag = text.find("div", attrs={"class": "test"})
# 提取文本内容
if h1_tag:
print(h1_tag.text)
注意事项: 部分网站可能反爬,建议遵守 robots.txt 协议,避免高频请求。
2. 二维码扫描仪
该脚本可批量扫描本地二维码图片,适合处理大量图像数据的场景。
依赖安装:
pip install qrtools
代码实现:
from qrtools import Qr
def scan_qr(qr_img_path):
qr = Qr()
try:
qr.decode(qr_img_path)
return qr.data
except Exception as e:
print(f"解码失败:{e}")
return None
result = scan_qr("qr.png")
if result:
print(f"二维码内容:{result}")
3. 屏幕截图工具
支持全屏截图、区域截图及延时截图,可用于自动化测试或日志记录。
依赖安装:
pip install pyautogui Pillow
代码实现:
from pyautogui import screenshot
from PIL import ImageGrab
import time
def grab_full_screenshot():
shot = screenshot()
shot.save('full_screenshot.png')
def grab_area_screenshot(x, y, width, height):
area = (x, y, x + width, y + height)
shot = ImageGrab.grab(bbox=area)
shot.save('area_screenshot.png')
def grab_delayed_screenshot(delay_seconds):
time.sleep(delay_seconds)
shot = screenshot()
shot.save('delayed_screenshot.png')
# 使用示例
grab_full_screenshot()
# grab_area_screenshot(0, 0, 500, 500)
# grab_delayed_screenshot(5)
4. 创建有声读物
将 PDF 文档中的文本转换为语音文件,方便阅读长文档。
依赖安装:
pip install gTTS PyPDF2
代码实现:
from PyPDF2 import PdfReader
from gtts import gTTS
import os
def create_audiobook(pdf_path):
reader = PdfReader(pdf_path)
for i, page in enumerate(reader.pages):
text = page.extract_text()
if not text:
continue
tts = gTTS(text=text, lang='en')
filename = f'page_{i}.mp3'
tts.save(filename)
print(f"已生成:{filename}")
create_audiobook('book.pdf')
5. PDF 编辑器
提供合并、删除、旋转页面等常用 PDF 编辑功能。
依赖安装:
pip install PyPDF2
代码实现:
from PyPDF2 import PdfReader, PdfWriter
def parse_text(pdf_path):
reader = PdfReader(pdf_path)
for i, page in enumerate(reader.pages):
print(f"--- Page {i} ---")
print(page.extract_text())
def remove_pages(pdf_path, pages_to_remove):
reader = PdfReader(pdf_path)
writer = PdfWriter()
for i, page in enumerate(reader.pages):
if i not in pages_to_remove:
writer.add_page(page)
with open('output_rm.pdf', 'wb') as f:
writer.write(f)
def merge_pdfs(pdf_paths, output_path):
writer = PdfWriter()
for path in pdf_paths:
reader = PdfReader(path)
for page in reader.pages:
writer.add_page(page)
with open(output_path, 'wb') as f:
writer.write(f)
# 使用示例
# merge_pdfs(['file1.pdf', 'file2.pdf'], 'merged.pdf')
6. 命令行版 Stack Overflow 查询
通过终端直接获取编程问题的解决方案,无需打开浏览器。
依赖安装:
pip install howdoi
使用示例:
howdoi how do i install python3
howdoi selenium Enter keys
howdoi Parse html with python
howdoi int not iterable error
7. 手机自动化脚本
利用 ADB (Android Debug Bridge) 控制安卓设备,执行点击、滑动等操作。
依赖安装:
pip install opencv-python
代码实现:
import subprocess
def run_adb_command(cmd):
p = subprocess.Popen(cmd.split(' '), stdout=subprocess.PIPE, shell=True)
output, _ = p.communicate()
return output.decode('utf-8')
def swipe(x1, y1, x2, y2, duration=500):
cmd = f'adb shell input swipe {x1} {y1} {x2} {y2} {duration}'
return run_adb_command(cmd)
def tap(x, y):
cmd = f'adb shell input tap {x} {y}'
return run_adb_command(cmd)
def send_sms(number, message):
cmd = f'adb shell am start -a android.intent.action.SENDTO -d sms:{number} --es sms_body "{message}"'
return run_adb_command(cmd)
# 注意:使用前需开启 USB 调试并连接设备
8. 监控 CPU/GPU 温度
通过编程方式读取硬件传感器数据,适用于服务器监控或游戏性能分析。
依赖安装:
pip install pythonnet
*注:需安装 OpenHardwareMonitor 软件并加载驱动。
代码实现:
import clr
clr.AddReference("OpenHardwareMonitorLib")
from OpenHardwareLib import Computer
spec = Computer()
spec.CPUEnabled = True
spec.GPUEnabled = True
spec.Open()
def get_cpu_temp():
if len(spec.Hardware) > 0:
hw = spec.Hardware[0]
for sensor in hw.Sensors:
if "Temperature" in str(sensor.SensorType):
if sensor.Value is not None:
return sensor.Value
return None
# 持续监控示例
while True:
temp = get_cpu_temp()
if temp:
print(f"CPU Temp: {temp}°C")
# 添加休眠避免占用过高资源
# time.sleep(1)
9. Instagram 上传机器人
自动上传图片或视频到社交媒体平台。
依赖安装:
pip install instabot
代码实现:
from instabot import Bot
def upload_photo(img_path):
bot = Bot()
# 安全提示:请勿在生产环境硬编码密码
bot.login(username="your_username", password="your_password")
bot.upload_photo(img_path, caption="Auto Posted")
print("Photo Uploaded")
def upload_video(video_path):
bot = Bot()
bot.login(username="your_username", password="your_password")
bot.upload_video(video_path, caption="Auto Posted")
print("Video Uploaded")
# 注意:频繁操作可能导致账号被封禁,请谨慎使用
10. 视频水印工具
为视频文件添加文字水印,保护版权或标识来源。
依赖安装:
pip install moviepy
代码实现:
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
def add_watermark(input_video, output_video):
clip = VideoFileClip(input_video)
text_clip = TextClip('WaterMark', font='Arial', color='white', fontsize=28)
text_clip = text_clip.set_duration(clip.duration)
text_clip = text_clip.set_pos(('center', 'bottom'))
final = CompositeVideoClip([clip, text_clip])
final.write_videofile(output_video, fps=30, codec='libx264')
add_watermark('myvideo.mp4', 'output.mp4')
总结与建议
上述脚本覆盖了办公自动化中常见的数据处理、系统交互及媒体处理需求。在使用时请注意以下几点:
- 安全性:涉及账号登录的脚本(如 Instagram),切勿将密码硬编码在代码中,建议使用环境变量管理敏感信息。
- 合规性:自动化操作应遵守目标平台的服务条款,避免滥用导致封号风险。
- 错误处理:生产环境中应增加异常捕获机制,防止脚本因网络波动或文件缺失而崩溃。
- 性能优化:对于循环处理大量文件的场景,建议增加异步处理或批处理逻辑以提升效率。
通过合理运用这些工具,开发者可以将繁琐的手工操作转化为自动化流程,从而专注于更高价值的创造性工作。


