[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D3CXKPR0V6ZP2HCKP5WYZJ":3,"skill-same:01M6D3CXKPR0V6ZP2HCKP5WYZJ":60},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M6D3CXKPR0V6ZP2HCKP5WYZJ","scrape",null,"Scrape web pages using Scrapling MCP — stealth fetching, anti-bot bypass, CSS selectors. No API key needed.","hemory\u002Famp-legacy-do-not-use","hemory","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21179881?v=4","01M6D31HFJ391DN8N0JP8AQGFE","Hemory Phifer","01M6D31HKXVTEN27AT6R4PP2ZJ",3,"MIT","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fscrape\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31],"MCP","bot","css","web","api","stealth","scrapling","pages","2026-11-10 10:12:30",false,"---\nname: scrape\ndescription: Scrape web pages using Scrapling MCP — stealth fetching, anti-bot bypass, CSS selectors. No API key needed.\n---\n\n# scrape\n\nExtract data from any website using Scrapling's MCP tools. Bypasses Cloudflare, handles dynamic JS-rendered pages, supports CSS selectors to pre-filter content (saves tokens).\n\n## Usage\n\n```\n\u002Fscrape \u003Curl>\n\u002Fscrape \u003Curl> with selector .article-content\n\u002Fscrape stealth \u003Curl>\n\u002Fscrape bulk \u003Curl1> \u003Curl2> \u003Curl3>\n```\n\n## When to Use (Tool Selection)\n\n| Scenario | Tool | Why |\n|----------|------|-----|\n| Simple page, no anti-bot | `scrapling_get` | Fastest. HTTP with browser TLS fingerprint |\n| JS-rendered \u002F SPA content | `scrapling_fetch` | Uses real Chromium browser |\n| Cloudflare \u002F anti-bot protected | `scrapling_stealthy_fetch` | Stealth mode, solves captchas |\n| Multiple pages, same pattern | `scrapling_bulk_get` \u002F `scrapling_bulk_fetch` | Parallel processing |\n\n## Implementation\n\n### Step 1: Parse User Intent\n\nDetermine from the user's request:\n- **URL(s)** to scrape\n- **CSS selector** (if specified — e.g., `.main-content`, `#article`, `table.data`)\n- **Stealth needed?** (Cloudflare sites, login-protected, anti-bot mentions)\n- **Bulk?** (multiple URLs)\n\n### Step 2: Choose the Right Scrapling MCP Tool\n\n**Default path (try in order, escalate on failure):**\n\n1. Start with `scrapling_get` — fast HTTP, handles most sites\n2. If content is empty\u002Fblocked → escalate to `scrapling_fetch` (real browser)\n3. If still blocked → escalate to `scrapling_stealthy_fetch` (stealth mode)\n\n**User explicitly asks for stealth:** Go straight to `scrapling_stealthy_fetch`\n\n**Multiple URLs:** Use the `bulk_` variants for parallel processing\n\n### Step 3: Call the MCP Tool\n\nUse the Scrapling MCP server tools. All tools accept:\n- `url` (required): The URL to scrape\n- `css_selector` (optional): CSS selector to extract specific elements — **always use this when possible to reduce token consumption**\n\n**Single page:**\n```\nCall scrapling MCP tool: get\nArguments: { \"url\": \"\u003Curl>\", \"css_selector\": \"\u003Cselector if provided>\" }\n```\n\n**Stealth:**\n```\nCall scrapling MCP tool: stealthy_fetch\nArguments: { \"url\": \"\u003Curl>\", \"css_selector\": \"\u003Cselector if provided>\" }\n```\n\n**Bulk:**\n```\nCall scrapling MCP tool: bulk_get\nArguments: { \"urls\": [\"\u003Curl1>\", \"\u003Curl2>\"], \"css_selector\": \"\u003Cselector>\" }\n```\n\n### Step 4: Process Results\n\nThe MCP returns extracted content (HTML or text depending on selector).\n\n**If user wants raw data:** Present it formatted\n**If user wants summary:** Summarize the extracted content\n**If user wants vault storage:** Save to `00-Inbox\u002FScrape - [Title].md`:\n\n```markdown\n# [Page Title]\n\n**Source:** [URL]\n**Scraped:** YYYY-MM-DD\n**Selector:** [CSS selector used, if any]\n\n## Content\n\n[Extracted content]\n```\n\n### Step 5: Handle Failures\n\n| Error | Action |\n|-------|--------|\n| Empty content | Escalate to next fetcher tier |\n| Connection refused | Check URL is valid |\n| Cloudflare challenge | Auto-escalate to `stealthy_fetch` |\n| Timeout | Retry with longer timeout, suggest `fetch` for slow JS sites |\n\n## Smart Defaults\n\n- **News\u002Fblog articles:** Auto-suggest `article, .post-content, .entry-content` selectors\n- **Product pages:** Auto-suggest `.product, .price, .description` selectors  \n- **Tables:** Auto-suggest `table` selector, offer to convert to markdown table\n- **Lists:** Auto-suggest `ul, ol` selectors\n\n## Examples\n\n```\nUser: \u002Fscrape https:\u002F\u002Fexample.com\u002Fblog\u002Fai-trends\n→ Use scrapling_get, auto-detect article content\n\nUser: \u002Fscrape stealth https:\u002F\u002Fprotected-site.com\u002Fdata\n→ Use scrapling_stealthy_fetch with Cloudflare bypass\n\nUser: scrape this page and grab just the pricing table: https:\u002F\u002Fsaas.com\u002Fpricing\n→ Use scrapling_get with css_selector=\"table\" or \".pricing\"\n\nUser: scrape these 5 competitor pages and compare their features\n→ Use scrapling_bulk_get, extract feature lists, present comparison\n```\n\n## Prerequisites\n\nScrapling must be installed with MCP support:\n```bash\npip install \"scrapling[ai]\"\nscrapling install\n```\n\nThe `scrapling` MCP server must be configured in `.mcp.json`.\n\n## Relationship to Other Tools\n\n- **WebFetch (native):** Basic URL fetch, no anti-bot, no selectors. Use for simple known-good pages.\n- **Firecrawl MCP:** Cloud-based, requires API key, good for crawling entire sites. Use when you need recursive crawl.\n- **Scrapling:** Local, free, stealthy, selector-based. **Default choice for single-page or small-batch scraping.**\n- **Apify:** Marketplace of specialized scrapers. Use for platform-specific extraction (LinkedIn, Twitter, etc.)\n","# scrape\n\nExtract data from any website using Scrapling's MCP tools. Bypasses Cloudflare, handles dynamic JS-rendered pages, supports CSS selectors to pre-filter content (saves tokens).\n\n## Usage\n\n```\n\u002Fscrape \u003Curl>\n\u002Fscrape \u003Curl> with selector .article-content\n\u002Fscrape stealth \u003Curl>\n\u002Fscrape bulk \u003Curl1> \u003Curl2> \u003Curl3>\n```\n\n## When to Use (Tool Selection)\n\n| Scenario | Tool | Why |\n|----------|------|-----|\n| Simple page, no anti-bot | `scrapling_get` | Fastest. HTTP with browser TLS fingerprint |\n| JS-rendered \u002F SPA content | `scrapling_fetch` | Uses real Chromium browser |\n| Cloudflare \u002F anti-bot protected | `scrapling_stealthy_fetch` | Stealth mode, solves captchas |\n| Multiple pages, same pattern | `scrapling_bulk_get` \u002F `scrapling_bulk_fetch` | Parallel processing |\n\n## Implementation\n\n### Step 1: Parse User Intent\n\nDetermine from the user's request:\n- **URL(s)** to scrape\n- **CSS selector** (if specified — e.g., `.main-content`, `#article`, `table.data`)\n- **Stealth needed?** (Cloudflare sites, login-protected, anti-bot mentions)\n- **Bulk?** (multiple URLs)\n\n### Step 2: Choose the Right Scrapling MCP Tool\n\n**Default path (try in order, escalate on failure):**\n\n1. Start with `scrapling_get` — fast HTTP, handles most sites\n2. If content is empty\u002Fblocked → escalate to `scrapling_fetch` (real browser)\n3. If still blocked → escalate to `scrapling_stealthy_fetch` (stealth mode)\n\n**User explicitly asks for stealth:** Go straight to `scrapling_stealthy_fetch`\n\n**Multiple URLs:** Use the `bulk_` variants for parallel processing\n\n### Step 3: Call the MCP Tool\n\nUse the Scrapling MCP server tools. All tools accept:\n- `url` (required): The URL to scrape\n- `css_selector` (optional): CSS selector to extract specific elements — **always use this when possible to reduce token consumption**\n\n**Single page:**\n```\nCall scrapling MCP tool: get\nArguments: { \"url\": \"\u003Curl>\", \"css_selector\": \"\u003Cselector if provided>\" }\n```\n\n**Stealth:**\n```\nCall scrapling MCP tool: stealthy_fetch\nArguments: { \"url\": \"\u003Curl>\", \"css_selector\": \"\u003Cselector if provided>\" }\n```\n\n**Bulk:**\n```\nCall scrapling MCP tool: bulk_get\nArguments: { \"urls\": [\"\u003Curl1>\", \"\u003Curl2>\"], \"css_selector\": \"\u003Cselector>\" }\n```\n\n### Step 4: Process Results\n\nThe MCP returns extracted content (HTML or text depending on selector).\n\n**If user wants raw data:** Present it formatted\n**If user wants summary:** Summarize the extracted content\n**If user wants vault storage:** Save to `00-Inbox\u002FScrape - [Title].md`:\n\n```markdown\n# [Page Title]\n\n**Source:** [URL]\n**Scraped:** YYYY-MM-DD\n**Selector:** [CSS selector used, if any]\n\n## Content\n\n[Extracted content]\n```\n\n### Step 5: Handle Failures\n\n| Error | Action |\n|-------|--------|\n| Empty content | Escalate to next fetcher tier |\n| Connection refused | Check URL is valid |\n| Cloudflare challenge | Auto-escalate to `stealthy_fetch` |\n| Timeout | Retry with longer timeout, suggest `fetch` for slow JS sites |\n\n## Smart Defaults\n\n- **News\u002Fblog articles:** Auto-suggest `article, .post-content, .entry-content` selectors\n- **Product pages:** Auto-suggest `.product, .price, .description` selectors  \n- **Tables:** Auto-suggest `table` selector, offer to convert to markdown table\n- **Lists:** Auto-suggest `ul, ol` selectors\n\n## Examples\n\n```\nUser: \u002Fscrape https:\u002F\u002Fexample.com\u002Fblog\u002Fai-trends\n→ Use scrapling_get, auto-detect article content\n\nUser: \u002Fscrape stealth https:\u002F\u002Fprotected-site.com\u002Fdata\n→ Use scrapling_stealthy_fetch with Cloudflare bypass\n\nUser: scrape this page and grab just the pricing table: https:\u002F\u002Fsaas.com\u002Fpricing\n→ Use scrapling_get with css_selector=\"table\" or \".pricing\"\n\nUser: scrape these 5 competitor pages and compare their features\n→ Use scrapling_bulk_get, extract feature lists, present comparison\n```\n\n## Prerequisites\n\nScrapling must be installed with MCP support:\n```bash\npip install \"scrapling[ai]\"\nscrapling install\n```\n\nThe `scrapling` MCP server must be configured in `.mcp.json`.\n\n## Relationship to Other Tools\n\n- **WebFetch (native):** Basic URL fetch, no anti-bot, no selectors. Use for simple known-good pages.\n- **Firecrawl MCP:** Cloud-based, requires API key, good for crawling entire sites. Use when you need recursive crawl.\n- **Scrapling:** Local, free, stealthy, selector-based. **Default choice for single-page or small-batch scraping.**\n- **Apify:** Marketplace of specialized scrapers. Use for platform-specific extraction (LinkedIn, Twitter, etc.)\n",{"name":5,"description":7},"main","5417cad9215b767627c7c947dcb3a0bbe3ebe52d",".claude\u002Fskills\u002Fscrape",0,"https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use","https:\u002F\u002Fgithub.com\u002Fhemory","https:\u002F\u002Fwww.heminthehat.com\u002F","The People Developer | L&D Program Manager | Software Engineer","2026-06-04 23:46:30",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add hemory\u002Famp-legacy-do-not-use --skill scrape",{"tool":52,"command":53},"bunx","bunx skills add hemory\u002Famp-legacy-do-not-use --skill scrape",{"tool":55,"command":56},"pnpm","pnpm dlx skills add hemory\u002Famp-legacy-do-not-use --skill scrape","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fscrape\u002FSKILL.md",true,[],[61,93,102,116,131,143],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":73,"publishedAt":32},"01M6D3DVEAHJTTK4W21B15ZZKK","zoom-setup","Connect Zoom to Amp for meeting recordings, scheduling, and transcript context","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fzoom-setup\u002FSKILL.md",[67,68],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":69,"categoryName":70,"taxonomyType":71,"taxonomyTypeDesc":72},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[74,75,76,24,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],"zoom setup","setup","schedule","review","connect","transcript","search","stats","oauth2","confirmation","context","meetings","process","recordings","surfaces","scheduling","granola","time","distribution",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":32},"01M6D3DRAK8VWESYDZDF8JJDSH","xray","Understand what just happened under the hood - learn AI by seeing it in action","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxray\u002FSKILL.md",[],[95,100,101],"learn","just",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":109,"publishedAt":32},"01M6D3DN7BZQDY6143A2QSDP9A","week-review","Review week's progress with concrete accomplishments (not fake percentages), pattern detection, and goal tracking.","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweek-review\u002FSKILL.md",[108],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[110,77,111,112,113,114,115],"week review","pattern detection","detection","tracking","goal","pattern",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":32},"01M6D3DJ7F1TCFXBBSTQW82WE7","week-plan","Set weekly priorities and plan the week ahead with intelligent suggestions based on goals, calendar shape, and task effort.","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweek-plan\u002FSKILL.md",[],[123,124,125,126,127,128,129,130],"week plan","plan","calendar","SET","shape","goals","task","priorities",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":32},"01M6D3DF90D7RC8ZJE4AW2P9VC","triage","Strategically route orphaned files and extract scattered tasks","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftriage\u002FSKILL.md",[],[133,138,139,140,141,142],"tasks","fast","extract","files","route",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":153,"publishedAt":32},"01M6D3DC9BBHK5TASE34SQYXSQ","trello-setup","Connect Trello to Amp for visual Kanban task sync","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftrello-setup\u002FSKILL.md",[149,152],{"categoryNo":150,"categoryName":151,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[154,155,75,156,78,24,157,129,158,159,160,28,161],"trello","trello setup","sync","token","kanban","bun","visual","server"]