원클릭으로
web-scraper
Extract data from web pages using fetch plugin and ha:html/ha:markdown
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Extract data from web pages using fetch plugin and ha:html/ha:markdown
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Discover, test, and document public REST/GraphQL/JSON APIs — explore endpoints, inspect responses, and build integration guides
Transform, filter, and analyse data using sandbox handlers
KQL language expertise for writing correct, efficient Kusto queries using Fabric RTI MCP tools
Connect and use external MCP servers (M365, GitHub, custom services)
Expert at building professional PDF documents using Hyperlight sandbox modules
Generate documents, reports, and formatted output files
| name | web-scraper |
| description | Extract data from web pages using fetch plugin and ha:html/ha:markdown |
| triggers | ["scrape","crawl","website","HTML","web page","webpage","URL","scrape website","web scraping","crawl site"] |
| patterns | ["fetch-and-process","data-extraction"] |
| antiPatterns | ["Don't use string concatenation for fetch chunk assembly — use array push + join","Don't parse HTML with regex — use ha:html parseHtml() or htmlToText()","Don't fetch without checking meta.ok first — handle HTTP errors","Don't hardcode URLs — pass them via event parameter","Don't scrape SPA websites (React, Next.js, Astro) — content is loaded by JavaScript. Use JSON APIs or look for API endpoints instead","Don't store raw HTML — use parseHtml() to extract text first"] |
| allowed-tools | ["register_handler","execute_javascript","execute_bash","delete_handler","get_handler_source","edit_handler","list_handlers","reset_sandbox","list_modules","module_info","list_plugins","plugin_info","manage_plugin","list_mcp_servers","mcp_server_info","manage_mcp","apply_profile","configure_sandbox","sandbox_help","register_module","write_output","read_input","read_output","ask_user"] |
ALWAYS use the two-step fetch pattern:
f.get(url) → check meta.ok and meta.contentTypef.read(url) in a loop → collect chunks → joinFor HTML content:
parseHtml(html) returns {text, links} — most efficient for bothhtmlToText(html) if you only need textextractLinks(html) if you only need linksFor Markdown content (e.g. GitHub READMEs):
markdownToText(md) strips formattingmarkdownToHtml(md) converts to HTML (then use htmlToText if needed)For structured data:
Required plugin config:
fetch.allowedDomains MUST be set (comma-separated)allowedContentTypes