一、自动化表单基础:从手动填表到机器代劳
说实话,我最早接触自动化表单填写,纯粹是被逼的。
那时候还在做数据采集,每天要手动录入几百条信息。复制、粘贴、点击、提交……重复到怀疑人生。后来我就在想:这些机械操作,能不能让机器替我干?
嗯,答案当然是能。而且比你想象的简单得多。
什么是自动化表单填写?
说白了,就是用代码模拟人的操作——在输入框里打字、勾选选项、点击按钮、提交数据。整个过程不需要你动一下鼠标。
我习惯把它拆成三步:
- 定位元素:找到输入框、下拉菜单、按钮这些组件
- 模拟操作:填内容、选选项、点提交
- 处理反馈:等页面加载、检查错误提示、处理验证码
你可能会问:这和手动填有什么区别?区别大了。手动填一小时,自动化可能只要几秒钟。而且它不会累,不会手抖,不会看错行。
应用场景分析:哪些地方用得上?
我在项目中遇到过三类最常见的场景,给你盘一盘:
1. 数据录入
这是最直接的场景。比如把Excel里的客户信息批量导入CRM系统,或者把爬到的数据填进后台管理页面。
我记得有个项目,客户每天要录入2000条物流单号。手动操作需要3个人轮班。我用Playwright写了个脚本,一台机器半小时搞定。嗯,那3个人后来转岗去做更有价值的事了。
2. 批量注册
这个场景比较敏感,但确实有正当用途。比如测试环境需要生成100个测试账号,或者为内部系统批量开通用户。
我曾经帮一个团队做过压力测试的账号生成器。他们需要5000个不同权限的账号。手动注册?那得注册到明年。自动化脚本跑了大概40分钟,全部搞定。
3. 爬虫登录
很多网站的数据需要登录后才能看到。这时候自动化表单就派上用场了——自动填用户名密码,处理验证码,维持登录状态。
我之前爬一个行业数据平台,每天要登录30多次。每次都要手动输验证码,烦得要死。后来用自动化配合打码平台,实现了全自动登录。数据采集效率提升了10倍不止。
技术选型对比:Selenium vs Playwright vs Puppeteer
选工具这事,我踩过不少坑。这三款主流工具,我挨个说说我的真实感受:
| 特性 | Selenium | Playwright | Puppeteer |
|---|---|---|---|
| 支持浏览器 | Chrome, Firefox, Safari, Edge | Chrome, Firefox, Safari, Edge | 仅Chrome/Chromium |
| 语言支持 | Python, Java, C#, JS等 | Python, JS/TS, Java, .NET | 仅JS/TS |
| 速度 | 较慢 | 快 | 快 |
| 稳定性 | 中等(常有隐式等待问题) | 高(自动等待机制) | 高 |
| 学习曲线 | 平缓 | 中等 | 中等 |
| 社区生态 | 最成熟 | 快速增长 | 成熟 |
Selenium:老牌劲旅,但有点笨重
Selenium是我最早用的工具。它最大的优势是生态成熟——你遇到的大部分问题,网上都能找到答案。
但说实话,我现在用得少了。为什么?因为它太慢了。每次启动浏览器都要好几秒,而且经常因为页面加载超时报错。我有个项目用Selenium跑批量注册,平均每3分钟就崩一次,气得我差点砸键盘。
Playwright:我现在的首选
Playwright是微软出的,这两年火得不行。我个人习惯用它来做大部分自动化任务。
它有几个让我爱不释手的特点:
- 自动等待:不用写一堆显式等待代码,它自己会等元素出现
- 多浏览器支持:一套API跑Chrome、Firefox、Safari
- 网络拦截:可以拦截请求、修改响应,调试起来特别方便
我记得有一次要处理一个特别复杂的表单,里面有动态加载的下拉菜单和验证码。用Selenium折腾了两天没搞定,换成Playwright,半天就写完了。嗯,从那以后我就成了Playwright的忠实用户。
Puppeteer:轻量级选手,但只认Chrome
Puppeteer是Google出的,只支持Chrome。如果你只需要操作Chrome,它是个不错的选择。
它的优势是轻量和快。启动速度比Selenium快一倍不止。而且和Chrome DevTools Protocol深度集成,能做很多底层操作。
但有个坑:它不支持Firefox和Safari。如果你要测试跨浏览器兼容性,Puppeteer就帮不上忙了。
puppeteer-extra和puppeteer-extra-plugin-stealth来绕过反爬检测。我试过,效果还不错。
怎么选?我给你个决策思路
你想想看,选工具其实就三个维度:
- 你要操作什么浏览器?——只用Chrome就Puppeteer,多浏览器就Playwright或Selenium
- 你用什么语言?——Python或JS首选Playwright,Java就Selenium
- 你追求速度还是稳定性?——要快选Playwright或Puppeteer,要稳定选Playwright
我个人现在90%的项目都用Playwright。剩下的10%是那些必须用Java的老项目,没办法,只能继续用Selenium。
好了,这一章就聊到这儿。下一章我会带你手写第一个自动化表单脚本,到时候你就知道这些工具到底怎么用了。