persistent-browser

by ckncg

用 Playwright 持久化上下文(main-identity)抓取需要登录态的网站(YouTube、GitHub、HuggingFace、Reddit、Kaggle、X/Twitter)。当用户要求外网搜索或指定这些网站时自动触发。

3.7k搜索与获取未扫描2026年3月23日

安装

claude skill add --url github.com/openclaw/skills/tree/main/skills/ckncg/persistent-browser

文档

Persistent Browser Scraper

用 Playwright launch_persistent_context 读写 main-identity 配置文件的技能。

核心原理

code
user_data_dir = /home/kncao/.openclaw/browser-profiles/main-identity
headless = False(必须,否则 X/Twitter 会返回空白)

每次抓取前先删 SingletonLock:

bash
rm -f /home/kncao/.openclaw/browser-profiles/main-identity/SingletonLock

标准模板

python
import asyncio
from playwright.async_api import async_playwright

USER_DATA_DIR = '/home/kncao/.openclaw/browser-profiles/main-identity'

async def scrape(url: str, selector: str = 'body', wait_ms: int = 8000):
    async with async_playwright() as p:
        context = await p.chromium.launch_persistent_context(
            user_data_dir=USER_DATA_DIR,
            headless=False,
            args=[
                "--password-store=basic",
                "--no-sandbox",
                "--disable-blink-features=AutomationControlled",
                "--disable-infobars"
            ],
            viewport={'width': 1280, 'height': 800},
            java_script_enabled=True
        )
        try:
            page = await context.new_page()
            await page.goto(url, wait_until='domcontentloaded', timeout=30000)
            await page.wait_for_timeout(wait_ms)  # SPA hydration
            text = await page.inner_text(selector)
            await context.close()
            return text
        except Exception as e:
            await context.close()
            raise e

各网站等待时间

网站wait_ms备注
X/Twitter8000React SPA,需等 JS 渲染
YouTube6000JS 懒加载
GitHub3000SSR为主
HuggingFace5000React
Reddit6000SSR+JS混合
Kaggle8000React SPA

触发条件

  • 用户要求「搜索外网」「搜一下」
  • 用户指定以下网站:YouTube、GitHub、HuggingFace、Reddit、Kaggle、X/Twitter
  • 任何需要登录态才能访问的内容抓取

注意事项

  • 必须用 headless=False,X/Twitter 在 headless=True 下会返回空白页面
  • 每次调用前清理 SingletonLock,否则报 ProcessSingleton 错误
  • SPA 页面(如 X)必须等 8 秒让前端 hydrate,否则正文为空
  • 优先提取纯文本,不依赖截图

相关 Skills

agent-browser

by chulla-ceja

热门

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

搜索与获取
未扫描3.7k

接口规范

by alexxxiong

热门

API 规范管理工具 - 跨项目 API 文档的初始化、更新、查询与搜索。Triggers: 'API文档', 'API规范', '接口文档', '路由解析', 'apispec', 'API lookup', 'API search'.

搜索与获取
未扫描3.7k

investment-research

by caijichang212

热门

Perform structured investment research (投研分析) for a company/stock/ETF/sector using a repeatable framework: fundamentals (basic/财务报表与商业模式), technical analysis (技术指标与关键价位), industry research (行业景气与竞争格局), valuation (估值对比/情景), catalysts and risks, and produce a professional research report + actionable plan. Use when the user asks for: equity/ETF analysis, earnings/financial statement breakdown, peer/industry comparison, valuation ranges, bull/base/bear scenarios, technical trend/support-resistance, or a full research memo.

搜索与获取
未扫描3.7k

相关 MCP 服务

by Anthropic

热门

Puppeteer 是让 Claude 自动操作浏览器进行网页抓取和测试的 MCP 服务器。

这个服务器解决了手动编写 Puppeteer 脚本的繁琐问题,适合需要自动化网页交互的开发者,比如抓取动态内容或做端到端测试。不过,作为参考实现,它可能缺少生产级的安全防护,建议在可控环境中使用。

搜索与获取
82.9k

网页抓取

编辑精选

by Anthropic

热门

Fetch 是 MCP 官方参考服务器,让 AI 能抓取网页并转为 Markdown 格式。

这个服务器解决了 AI 直接处理网页内容时格式混乱的问题,适合需要让 Claude 分析在线文档或新闻的开发者。不过作为参考实现,它缺乏生产级的安全配置,你得自己处理反爬虫和隐私风险。

搜索与获取
82.9k

Brave 搜索

编辑精选

by Anthropic

热门

Brave Search 是让 Claude 直接调用 Brave 搜索 API 获取实时网络信息的 MCP 服务器。

如果你想让 AI 助手帮你搜索最新资讯或技术文档,这个工具能绕过传统搜索的限制,直接返回结构化数据。特别适合需要实时信息的开发者,比如查 API 更新或竞品动态。不过它依赖 Brave 的 API 配额,高频使用可能受限。

搜索与获取
82.9k

评论