如何写浏览器自动化脚本

wen 实用脚本 20

从零到精通的全流程解析

📑 目录导读

  1. 浏览器自动化脚本是什么?核心应用场景解析
  2. 准备工作:开发环境与必备工具安装
  3. 三大主流脚本框架对比(Selenium/Puppeteer/Playwright)
  4. 手把手编写第一个自动化脚本(附代码)
  5. 常见问题Q&A:报错处理与性能优化
  6. SEO友好型脚本编写技巧

浏览器自动化脚本是什么?

问:浏览器自动化脚本能做什么?
答:就是让程序模拟人的操作(点击、输入、滚动、截图),自动完成网页上的重复任务,自动填写表单、批量下载文件、定时抢购商品、抓取动态渲染的网页数据、甚至自动化测试你的网站。

如何写浏览器自动化脚本

核心价值:将人工耗时从小时级压缩到秒级,且24小时无人值守运行。


开发环境搭建(3分钟完成)

安装Node.js(推荐v18+)

访问官网下载LTS版本,安装后终端输入 node -v 确认版本。

安装代码编辑器

推荐VS Code,安装插件:ES7+ React/Redux/React-Native snippets(语法高亮)、Code Runner(一键运行脚本)。

选择一个自动化库

指令示例(以Playwright为例,当前SEO社区推荐度最高):

npm init -y
npm install playwright
npx playwright install chromium  # 安装Chromium内核

三大框架深度对比(帮你选最合适的)

框架 优势 劣势 最佳场景
Selenium 支持所有浏览器,社区资料最全 速度慢(需要WebDriver),API复杂 需要兼容多浏览器的企业级测试
Puppeteer 基于Chromium,速度极快,支持无头模式 仅支持Chrome内核浏览器 数据爬取、截图生成、PDF导出
Playwright 支持Chromium/Firefox/WebKit,内置等待机制 库体积稍大(但压缩后影响小) 跨浏览器自动化、反爬虫较强的站点

SEO建议:若目标站点使用了大量JavaScript动态渲染(如React/Vue单页应用),优先选Playwright或Puppeteer,因为它们能完美处理浏览器渲染延迟。


实战:写一个自动登录百度并搜索“浏览器自动化”的脚本

步骤1:基础框架

const { chromium } = require('playwright');
(async () => {
  const browser = await chromium.launch({ headless: false }); // true为无头模式
  const page = await browser.newPage();
  // 后续操作写在这里
  // 关闭浏览器
  await browser.close();
})();

步骤2:访问目标页面并登录

await page.goto('https://www.baidu.com');
await page.fill('input[name="wd"]', '浏览器自动化'); // 搜索框填词
await page.click('input[type="submit"]'); // 点击百度一下
await page.waitForTimeout(2000); // 等待结果加载

步骤3:截图保存SEO素材

await page.screenshot({ path: 'result.png', fullPage: true });
console.log('脚本运行成功!');

步骤4:异常处理(防止报错中断)

try {
  // 核心代码包裹
} catch (error) {
  console.error('脚本异常:', error.message);
  // 发送通知(邮件/企业微信)通知运维人员
}

高频问题Q&A(解决90%的卡点)

Q1:脚本被网站识别为机器人怎么办?
A:三步破解法:

  • 使用 page.setUserAgent() 模拟真实浏览器UA
  • 添加随机延迟 await page.waitForTimeout(Math.random() * 2000)
  • 设置伪装参数:const context = await browser.newContext({ viewport: { width: 1920, height: 1080 } })

Q2:如何处理动态加载的弹窗/验证码?
A:先用 page.waitForSelector('.popup-class') 等待元素出现,再调用 page.click('.close-button'),若涉及验证码,建议接入打码平台API(如2captcha)。

Q3:脚本稳定运行后如何部署?
A:部署到云服务器(阿里云/腾讯云轻量应用服务器),使用PM2进程守护工具:

npm install -g pm2
pm2 start your_script.js --name auto_bot
pm2 save
pm2 startup  # 设置开机自启

SEO优化型脚本编写技巧

作为补充,如果你想通过自动化脚本提升网站的SEO效果,注意以下三点:

  1. 爬虫模拟:在脚本中设置 Accept-LanguageReferer 头,避免被搜索引擎标记为攻击行为
  2. 页面性能监测:用 page.metrics() 收集FCP、LCP等核心指标,输出成JSON文件供SEO团队分析
  3. 结构化数据生成:自动访问站点所有URL,校验每个页面的Meta Title/Description是否符合规范,并生成诊断报告

总结与行动清单

浏览器自动化脚本的核心能力在于:通过代码控制真实浏览器,完成任何人类能做的Web操作,建议新手从Playwright入手,先实现一个简单的表单自动化(如自动注册账号),再逐步加入异常处理、日志记录、通知发送等功能。

立即行动:打开终端,执行以下命令体验3分钟写脚本的快感:

npm init -y && npm i playwright && npx playwright install chromium && echo "const {chromium}=require('playwright');(async()=>{const b=await chromium.launch();const p=await b.newPage();await p.goto('https://example.com/');console.log(await p.title());await b.close()})()" > test.js && node test.js

抱歉,评论功能暂时关闭!