本文目录导读:

Python 脚本截图
使用 pyautogui(跨平台)
import pyautogui
# 截取全屏
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')
# 截取指定区域 (left, top, width, height)
region = pyautogui.screenshot(region=(0, 0, 500, 400))
region.save('region.png')
使用 Pillow (PIL)
from PIL import ImageGrab
# 截取全屏
im = ImageGrab.grab()
im.save('screenshot.png')
# 截取指定区域
im = ImageGrab.grab(bbox=(100, 100, 500, 500))
im.save('region.png')
使用 mss(高性能)
import mss
import mss.tools
with mss.mss() as sct:
# 全屏截图
sct.shot(output='screenshot.png')
# 指定显示器
monitor = sct.monitors[1] # 第一个显示器
sct.shot(mon=monitor, output='monitor.png')
JavaScript 浏览器截图
截取整个页面
// 需要 html2canvas 库
async function captureScreenshot() {
const canvas = await html2canvas(document.body);
const image = canvas.toDataURL('image/png');
// 创建下载链接
const link = document.createElement('a');
link.download = 'screenshot.png';
link.href = image;
link.click();
}
截取特定元素
async function captureElement(elementId) {
const element = document.getElementById(elementId);
const canvas = await html2canvas(element);
return canvas.toDataURL('image/png');
}
Shell 脚本截图
Linux (使用 scrot)
#!/bin/bash # 截取全屏 scrot 'screenshot_%Y%m%d_%H%M%S.png' # 延迟5秒截图 scrot -d 5 'delayed_screenshot.png' # 截取窗口 scrot -b 'window_%Y%m%d.png'
macOS
#!/bin/bash # 截取全屏 screencapture screen.png # 截取选择区域 screencapture -i region.png # 截取窗口 screencapture -w window.png
Windows PowerShell
# 使用 .NET 类
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$bounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
$bitmap = New-Object System.Drawing.Bitmap $bounds.Width, $bounds.Height
$graphics = [System.Drawing.Graphics]::FromImage($bitmap)
$graphics.CopyFromScreen($bounds.Location, [System.Drawing.Point]::Empty, $bounds.Size)
$bitmap.Save("screenshot.png", [System.Drawing.Imaging.ImageFormat]::Png)
自动化测试截图
Selenium (Python)
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://example.com')
# 截取整个页面
driver.save_screenshot('full_page.png')
# 截取元素
element = driver.find_element_by_id('some-element')
element.screenshot('element.png')
driver.quit()
实用功能增强
定时截图
import time
import pyautogui
def timed_screenshots(interval_seconds, count):
for i in range(count):
pyautogui.screenshot(f'screenshot_{i}.png')
time.sleep(interval_seconds)
# 每5秒截一次,共10次
timed_screenshots(5, 10)
添加时间戳
from datetime import datetime
import pyautogui
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
pyautogui.screenshot(f'screenshot_{timestamp}.png')
上传到云存储
import pyautogui
import requests
# 截图并上传
screenshot = pyautogui.screenshot()
screenshot.save('temp.png')
with open('temp.png', 'rb') as f:
files = {'file': f}
response = requests.post('https://your-upload-url', files=files)
批量截图工具
import os
import pyautogui
from selenium import webdriver
def batch_screenshot(urls, output_dir):
os.makedirs(output_dir, exist_ok=True)
driver = webdriver.Chrome()
for i, url in enumerate(urls):
driver.get(url)
driver.save_screenshot(f'{output_dir}/page_{i}.png')
driver.quit()
# 使用示例
urls = ['https://example1.com', 'https://example2.com']
batch_screenshot(urls, './screenshots')
选择哪种方法取决于你的具体需求:
- Python: 最灵活,适合自动化任务
- JavaScript: 用于 Web 应用
- Shell: 适合简单快速的操作
- PowerShell: Windows 环境
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播