/install browser-scraper
Browser Scraper
Scrapes web pages using Playwright with a real Chrome/Chromium binary and an existing user profile. Bypasses bot detection by sharing existing cookies, fingerprint, and session.
Profiles
The scraper supports multiple Chrome profiles:
-
Default (no
--profileflag): Uses the system's default Chrome profile- macOS:
~/Library/Application Support/Google/Chrome/Default - Linux:
~/.config/google-chrome/Default - Windows:
%LOCALAPPDATA%\Google\Chrome\User Data\Default
- macOS:
-
Named profile (
--profile \x3Cname>): Usesprofiles/\x3Cname>/under the skill directory- Create a profile by launching Chrome with
--profile-directory=Profile 1or similar, then point the scraper at that folder - Useful for: isolating logins, avoiding conflicts with your main Chrome session, scraping without auth
- Create a profile by launching Chrome with
Script
# Default profile (system Chrome)
node scripts/scrape.mjs \x3Curl> [css_selector]
# Named profile (profiles/\x3Cname>/)
node scripts/scrape.mjs \x3Curl> [css_selector] --profile \x3Cname>
# Headless mode (faster, higher block risk)
node scripts/scrape.mjs \x3Curl> --headless --profile \x3Cname>
# Keep browser open after scraping (for interactive use)
node scripts/scrape.mjs \x3Curl> --profile \x3Cname> --keep-open
# Extra wait for lazy-loaded content (default: 3000ms)
node scripts/scrape.mjs \x3Curl> --profile \x3Cname> --wait 6000
Run from the skill directory:
cd ~/.openclaw-yekeen/workspace/skills/browser-scraper/
node scripts/scrape.mjs https://www.reddit.com/
Output
- JSON to stdout: matched elements or page preview
- Screenshot saved to
/tmp/browser-scraper-last.png
Key Design
channel: 'chrome'— launches real Chrome when available, falls back to system ChromiumlaunchPersistentContextwith the profile directory--disable-blink-features=AutomationControlled+navigator.webdriverpatchheadless: falseby default to avoid SingletonLock conflicts
Requirements
- Playwright installed:
npm install playwright - Chrome or Chromium installed on the system
- On macOS/Linux: the
channel: 'chrome'option requires Chrome (not Chromium) to be installed
Tips
- Chrome must not already be open with the target profile (SingletonLock error). Close Chrome first, or use a named profile to avoid conflicts.
- If you get a
SingletonLockerror with a named profile, delete theSingletonLockfile in that profile directory and try again. - Use
--keep-opento leave the browser open for interactive use after scraping — Ctrl+C to close. - For sites with lazy-loaded content: use
--wait \x3Cms>flag or modify the script to increasewaitForTimeout - For Reddit: use selector
shreddit-postand read attributes (post-title,author,score,permalink) - To create a fresh isolated profile: run Chrome from the terminal with
--profile-directory=Profile Xand log in, then point the scraper at that directory
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install browser-scraper - 安装完成后,直接呼叫该 Skill 的名称或使用
/browser-scraper触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
browser scraper 是什么?
Scrape websites using a real Chrome browser with the user's Chrome profile — shares cookies, auth, and fingerprint to bypass bot detection (Cloudflare, Reddi... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 116 次。
如何安装 browser scraper?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install browser-scraper」即可一键安装,无需额外配置。
browser scraper 是免费的吗?
是的,browser scraper 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
browser scraper 支持哪些平台?
browser scraper 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 browser scraper?
由 neekey(@neekey)开发并维护,当前版本 v1.0.0。