安装方式
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add sickn33/antigravity-awesome-skills --skill hasdata
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add sickn33/antigravity-awesome-skills --skill hasdata name: hasdata
description: 使用 HasData APIs 进行网络爬取和结构化网页数据提取。
risk: safe
source: official
source_type: official
source_repo: HasData/hasdata-cli
license: MIT
license_source: "https://github.com/HasData/hasdata-cli/blob/main/LICENSE"
date_added: "2026-06-04"用于提取公开网络数据的云平台。一个 API 密钥,三种执行模式。所有端点位于 https://api.hasdata.com,并使用 x-api-key 进行身份验证。
curl -G 'https://api.hasdata.com/scrape/google/serp' \
--data-urlencode 'q=coffee' \
-H 'x-api-key: <your-api-key>'
401 无效密钥,403 配额耗尽,429 并发上限,500 服务器错误(需重试)。
在以下情况下使用此技能:
| 模式 | 延迟 | 适用场景 | 端点 |
|---|---|---|---|
| 网页抓取 API | 秒级 | 任意 URL — JS 渲染、CSS/AI 提取、截图 | POST /scrape/web |
| 抓取器 API(同步) | 秒级 | 已知平台(Google、Amazon、Zillow 等)的预解析 JSON | GET /scrape/<vertical>/<resource> |
| 抓取任务(异步) | 分钟~小时级 | 批量提取、递归爬取、webhook 扇出 | POST /scrapers/<slug>/jobs |
决策规则。 当平台存在对应的抓取器 API 时,默认使用它(预解析 JSON,无需维护选择器)。对于 API 未覆盖的任意 URL,使用网页抓取。仅在以下情况下才使用抓取任务:没有对应的 API 替代方案 — crawler、contacts、sec-edgar、amazon-bestsellers、amazon-product-reviews — *或*当异步扇出 + webhook 能比分页客户端循环更节省工程时间时。
{ "requestMetadata": { "id": "…", "status": "ok", "url": "…" }, "...": "端点特定" }
仅当 requestMetadata.status === "ok" 时才将数据视为有效。单独的 HTTP 200 状态码不足以保证。
/scrape/google/ai-mode 获取答案和引用 → 对每个引用 URL 执行 /scrape/web(markdown 格式)→ 提供引用来源的 RAG 上下文,无需向量数据库。/scrape/google-maps/search 返回企业网站和电话号码;仅从公开、允许的来源收集联系信息,并在任何外联使用前应用退出机制、频率限制和隐私法律约束。crawler 抓取任务搭配 outputFormat: ["markdown"] 和 includePaths: "/docs/.+",一次提交即可生成适用于 LLM 的语料库。knowledgeGraph、localResults、inlineShoppingResults、relatedQuestions 包含预解析的公开事实。在考虑直接访问页面之前,始终先检查这些字段。x-api-key 头。从 HASDATA_API_KEY 环境变量读取。绝不硬编码,绝不记录日志。429 和 5xx 执行——指数退避,加入抖动。绝不重试 4xx(身份验证、验证错误)。429 错误。body.id(整数),而非 jobId。立即持久化该 ID。每 10~30 秒轮询 GET /scrapers/jobs/<id>,使用退避策略;将 webhook 视为尽力而为,并始终搭配轮询。状态为 finished 时,结果中包含 data: {csv, json, xlsx} 的短期 URL——立即下载。参见 references/code-recipes.md,其中提供了可直接使用的 Python 和 TypeScript 客户端,包含重试、退避、有界并发和完整的任务生命周期。
jsRendering,仅在页面需要时才启用——大多数静态页面无需 headless 浏览器即可正常解析。cookies 参数——cookie 通过 headers["Cookie"] 传递。includePaths 正则表达式区分大小写。 /blog/.+ 不会匹配 /Blog/...。data 是双重包装的。 每一行是 body.data[i].data;外层包装包含 id、jobId、dataId、createdAt、updatedAt。requestMetadata.status === "ok" 是唯一的成功信号。 单独的 HTTP 200 状态码不足以保证。references/web-scraping.md](references/web-scraping.md) — POST /scrape/web 参数、JS 场景、AI 提取、Cookie 身份验证。references/search.md](references/search.md) — Google SERP / Light / AI Mode / News / Shopping / Bing / Trends + 分页。references/ecommerce.md](references/ecommerce.md) — Amazon(产品、搜索、卖家、卖家产品)和 Shopify。references/real-estate.md](references/real-estate.md) — Zillow、Redfin(方括号过滤器)。references/travel.md](references/travel.md) — Airbnb、Booking、Google Flights(占用规则、令牌分页、IATA 代码)。references/local-business.md](references/local-business.md) — Maps(搜索/地点/评论/照片/帖子)、Yelp、YellowPages。references/jobs.md](references/jobs.md) — Indeed 和 Glassdoor。references/youtube.md](references/youtube.md) — YouTube 搜索/视频/频道/字幕。references/scraper-jobs.md](references/scraper-jobs.md) — 异步提交/轮询/结果、Crawler、Contacts、SEC EDGAR、Webhook 接收器。references/code-recipes.md](references/code-recipes.md) — Python / TypeScript 客户端,包含重试、退避、并发、轮询。