每天上班第一件事,打开十几个网页,挨个点开关键数据页面,手动截图存档。这是不是你的日常?尤其是做运营、数据分析或者竞品监控的,截图任务一多,不仅费时间,还容易漏掉某个关键节点。
为什么需要网页截图自动化
比如你负责监控电商平台的价格变动,每天要对比五家店铺同一款商品的价格和促销信息。手动刷新、放大页面、调整窗口、截图、命名、保存——一套流程下来十几分钟,连续做一周人就麻木了。更别提有时候忘记截图,第二天想查历史数据却发现没有记录。
这时候,网页截图自动化就能派上用场。它能按设定的时间自动打开指定网址,加载页面后截取完整画面,保存到本地或上传到服务器,全程不用你动手。
用 Puppeteer 实现自动截图
Puppeteer 是一个基于 Node.js 的库,可以控制无头浏览器(Headless Chrome),特别适合做网页截图这类任务。安装很简单:
npm install puppeteer
写一个脚本,让它访问百度首页并截图:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.baidu.com');
await page.screenshot({ path: 'baidu.png', fullPage: true });
await browser.close();
})();
运行这个脚本,就会在当前目录生成一张名为 baidu.png 的完整页面截图。你可以把网址换成任何你想监控的页面,比如后台管理页、广告投放报表页等。
定时执行,真正解放双手
光会截图还不够,得让它按时跑起来。在 macOS 或 Linux 上可以用 cron 定时任务。比如每天上午9点自动执行一次:
0 9 * * * /usr/bin/node /path/to/your/script.js
Windows 用户可以用“任务计划程序”,新建一个基本任务,触发器设为每天固定时间,操作选择启动 node.exe 并指向你的脚本文件。设置好之后,每天到点自动截图,连电脑都不用开。
进阶技巧:登录后截图
有些页面需要登录才能查看,比如公司内部系统。Puppeteer 也能处理。可以在脚本中模拟输入账号密码并点击登录:
await page.type('#username', 'your-username');
await page.type('#password', 'your-password');
await page.click('#login-btn');
await page.waitForNavigation();
await page.screenshot({ path: 'dashboard.png' });
注意:涉及账号密码时,建议用环境变量存储敏感信息,不要直接写在代码里。
还能做什么
截图只是起点。你可以让脚本在截图前先判断页面是否有特定元素,比如价格是否低于某个阈值,如果有就发邮件提醒;也可以把多张截图拼成一张长图,方便对比;甚至可以把截图结果自动上传到钉钉或企业微信群,团队随时查看。
有个做新媒体的朋友,用这个方法每天自动截取公众号后台的阅读数据页面,存进资料库,月底直接导出图片做汇报,再也不用手忙脚乱翻记录。