你是不是也这样,每天在网页上重复点
你是不是也遇到过:每天早上打开好几个网页,挨个登录、挨个点"签到""查询""导出";或者月底要在后台系统里把几百条数据一条条填进表单,鼠标点得手抽筋。还有人每天盯着电商页面看价格变没变,盯得眼睛发酸。这些活儿不难,就是枯燥、重复、特别费时间。说白了,它们都是"照着一套固定步骤在网页上点来点去",这种活儿,其实最适合交给程序。今天我们就用 Python 给浏览器雇一个"小工",让它在网页上替你点点点,你喝口水的功夫它就把活干完了。
浏览器自动化到底是个啥
说人话,就是写一段程序,让电脑像人一样去操作浏览器:打开网页、在输入框打字、点按钮、把页面上的文字读出来。在自动化圈子里,这叫 RPA(机器人流程自动化)里很常见的一类。早年想干这个,得学一堆复杂的专用工具;现在有个叫 Playwright 的库,几行代码就能让浏览器乖乖听话。它支持 Chrome、Edge 这些主流浏览器,而且能一条命令帮你把浏览器装好,对新手最省心。最关键的是,它跑在你自己的电脑上,免费、不用联网调接口、想怎么改就怎么改,比很多要付费的自动化平台灵活多了。
三步跑起来,先让浏览器自己打开网页
第一步,把工具和浏览器装好(只要装一次):
# 在命令行里挨个执行
pip install playwright
playwright install chromium
装完之后,写第一段脚本,让浏览器打开百度、输入关键词、点一下搜索:
# 让浏览器打开百度并搜索
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # headless=False 能看到浏览器窗口
page = browser.new_page()
page.goto("https://www.baidu.com")
page.fill('#kw', "Python 自动化") # 在搜索框里输入
page.click('#su') # 点"百度一下"
page.wait_for_timeout(3000) # 等 3 秒看结果
browser.close()
把上面这段存成 demo.py,命令行里敲 python demo.py 一回车,你就能亲眼看到浏览器自己弹出来、自己打字、自己点。我第一次跑通的时候,看着窗口自己动,真的解压。注意 headless=False 是让浏览器露个脸,方便你看它在干嘛;等以后要它后台偷偷干,把它改成 True 就行。
让它点点点:怎么"定位"网页上的元素
程序不像人靠眼睛看,它靠选择器找到要操作的地方。上面用的 #kw 就是百度搜索框的 id。除了记 id,Playwright 还有更聪明的定位方式,不依赖那些乱七八糟的代码:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto("https://www.baidu.com")
# 按"占位文字"找输入框,比记 id 直观
page.get_by_placeholder("请输入搜索词").fill("Python 自动化")
# 按"按钮上的文字"点按钮
page.get_by_role("button", name="百度一下").click()
page.wait_for_selector("#content_left") # 等搜索结果出现
print("页面标题:", page.title())
browser.close()
这里 fill 是往里填字,click 是点击,wait_for_selector 是等某个元素出现——这一步特别关键,网页加载要时间,不等人家加载完就去点,程序容易扑空报错。等结果出来了再动手,稳。
它都能帮你干点啥
别小看这几行代码,套上真实场景就很好用:
- 自动签到 / 自动打卡:每天打开网页、登录、点签到,省得忘了。
- 自动采集数据:打开搜索页或列表页,把标题、价格、库存一条条读出来存成表格。
- 表单批量录入:几百条数据,循环填进去提交,手再也不酸。
- 定时监控:每隔一小时看一眼价格或库存,变了就提醒你。
说白了,凡是"打开网页→登录→点几下→读点东西"的活儿,都能照这个套路自动化。
实战:让它自动登录一个网站
光搜索不过瘾,来个更实用的:自动登录。下面用一个专门给测试用的网站演示,用户名 tomsmith、密码 SuperSecretPassword!,你不用注册,直接能跟着跑:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto("https://the-internet.herokuapp.com/login")
page.fill("#username", "tomsmith") # 填用户名
page.fill("#password", "SuperSecretPassword!") # 填密码
page.click("button[type='submit']") # 点登录按钮
result = page.inner_text(".flash") # 读出登录后的提示文字
print("登录结果:", result)
browser.close()
跑完你会看到它自动填好账号密码、点下登录、再把"登录成功"的提示读出来。把这里的网址、选择器换成你自己的系统,一个自动登录加自动操作的机器人就成型了。比如你公司有个后台,每天要登录导一份报表,这套代码改改就能天天替你导。
新手最容易踩的 5 个坑
1. 报错说找不到浏览器:八成是只装了库、忘了装浏览器本体,补一句 playwright install chromium 就好。2. 元素找不到、点不动:页面没加载完,加上 wait_for_selector 或 wait_for_timeout 等一等。3. 不知道选择器怎么写:在网页上按 F12 打开开发者工具,点左上角那个箭头图标,再点页面上的按钮,右边就能看到它的 id、class,右键还能 Copy → Copy selector 直接抄。4. 遇到验证码、滑块:这种别硬刚,复杂验证码自动化真搞不定,该人工就人工,也别拿它去干违规的事。5. 想让它后台悄悄跑:把 headless=False 改成 headless=True,浏览器就不弹窗口,安安静静在后台干活,特别适合配合定时任务每天自动执行。
小结:把重复劳动交给程序
今天你学会了一件很酷也很实用的事:用 Python 加 Playwright 让浏览器替你操作网页。从打开页面、填字、点击到把结果读出来,一条龙全自动。你可能会说,这不就是个"高级宏"吗?没错,但正是这种小自动化,天天替你省下的那十几分钟,攒一年就是一大块生命。下一步,你可以把它用在真实场景里:自动签到、自动抓每天的数据、自动填表提交。当你把双手从重复劳动里解放出来,才算真正踏进了自动化的大门。要是想知道"怎么让这个机器人每天定时自己跑、不用你操心",评论区告诉我,下篇咱就聊定时任务。