浏览器插件爬虫:一种被低估的爬虫方案
前言
刚刚看到一个博主写了一下浏览器插件爬虫。想想 这个自己做的还是比较早的。从popup 到 content.js 到servicesworker 场景也写了不少。就水一篇文章吧
提到爬虫,大部分人第一反应可能还是 Python 的 Scrapy、Playwright、Selenium,或者 Node.js 下的 Puppeteer。
但是随着各大网站反爬越来越严格,传统爬虫的成本也越来越高。
本文主要介绍一下浏览器插件爬虫这种方案,以及它相比传统爬虫的一些优势。
最后顺便介绍一下最近比较火的浏览器插件开发框架 —— WXT。
什么是浏览器插件爬虫?
简单来说,就是把原本运行在服务器上的爬虫代码,放到浏览器插件里面执行。
传统模式:
1 | |
插件模式:
1 | |
插件运行在用户浏览器内部,它本质上已经成为浏览器环境的一部分。
而大部分网站设计的时候,本身就是给浏览器访问的。
这就导致:
浏览器插件天然拥有“真实用户”的身份。

传统爬虫的痛点
做过爬虫的人应该都遇到过这些问题。
登录问题
很多网站登录流程越来越复杂:
- 短信验证码;
- 滑块验证;
- 人机验证;
- 二维码登录;
- 多因素认证。
传统爬虫需要模拟这一整套流程。
有时候验证码比业务逻辑都复杂。

其实这种很多基于风控行为的 到现在 你无论自动化还是插件或者RPC都不好解决。要不你就烧成本
Cookie维护
传统爬虫经常需要:
1 | |
维护成本很高。
尤其是你在做任何一个网站。哪怕你要短期获取数据。你也需要他的ck来获取数据。
反爬检测
例如:
- User-Agent检测;
- 浏览器指纹检测;
- TLS指纹;
- WebDriver检测;
- Canvas指纹;
- 行为检测。
很多网站甚至会检测:
1 | |
只要返回 true。

直接给你空数据。但时至今日 这种反爬应该有很多种解决方式了。这里也只是个举个例子
动态渲染
现在越来越多的网站:
1 | |
接口数据不一定好找。
很多时候只能:
1 | |
资源消耗很大。

插件爬虫的优势
天然拥有登录态
插件运行在用户浏览器。
Cookie 本身就在浏览器里。
例如:
1 | |
就可以获取当前域名 Cookie。
用户登录一次。
插件长期复用。
不需要重复登录。
这里用我写的图来表示下

用小红书来举例 像这种websession http only的cookie 正常document.cookie 无法获取的 。但是你通过Chrome插件就能很轻松获取了。
更像真实用户
插件本质就是浏览器的一部分。
很多检测根本不会触发。
例如:
1 | |
正常浏览器:
1 | |
Selenium:
1 | |
很多简单反爬在这里就失效了。虽然是简单反爬。但也是比较极致的伪装
直接读取页面DOM
传统爬虫:
1 | |
插件:
1 | |
直接获取。
例如:
1 | |
简单粗暴。
当然这里还是有一些问题的 我用一张图来举例

内外dom要交互 需要发送message
获取接口数据更方便
插件可以 Hook:
1 | |
例如:
1 | |
很多隐藏接口。
页面自己就帮你调用了。
插件只需要监听即可。
PS : 这里其实还有一些问题。比如XHR 和fetch的区别 有兴趣的同学可以加我微信细聊
资源消耗更低
如果使用 Playwright:
1 | |
插件:
1 | |
几乎没有额外成本。
尤其适合:
- 数据采集助手;
- CRM插件;
- 电商运营工具;
- 招聘信息收集;
- 社媒运营工具。

插件爬虫的劣势
当然。
插件也不是万能的。
依赖用户浏览器
无法像服务器一样:
1 | |
用户关掉浏览器。
插件也停止工作。
发布审核
如果发布到 Chrome Web Store。
审核越来越严格。
尤其涉及:
- 数据采集;
- 自动化操作;
审核周期可能比较长。

遇到翻页验证码 逻辑复杂
要是真的遇到这种交互性的东西 可能逻辑就比较复杂。尤其是用了AI 你压根看不懂。
WXT:现代浏览器插件开发框架
以前写插件。
基本都是:
1 | |
纯手写。项目稍微大一点。维护起来就很痛苦。
后来接触到了 WXT。
个人感觉是目前体验最好的浏览器插件开发框架之一。
WXT 是什么?
这里直接丢一个官方链接: https://wxt.dev/
WXT 可以理解成:
浏览器插件领域的 Vite。
官方定位:
1 | |
它帮我们处理:
- 打包;
- 热更新;
- Manifest生成;
- 多浏览器兼容;
- TypeScript支持。
开发体验提升非常明显。

WXT的优点
支持主流框架
支持:
1 | |
开发 popup 页面体验和正常前端项目一致。
自动生成 Manifest
传统插件:
1 | |
几百行。
WXT:
1 | |
自动生成。
开发效率高
修改代码:
1 | |

这一点真的舒服…
个屁。实际也会有BUG 各有各的好吧。
总结
这里我也不废话了 直接放图

优点还是比较多的。相当于web端重打包。本来想建群的。后面想想算了。现在AI直接秒杀了 哪有它不会的API~