返回全部 Skills

hasdata

数据处理

使用 HasData APIs 进行网络爬取和结构化网页数据提取。

12

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add sickn33/antigravity-awesome-skills --skill hasdata

skill.md

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"

HasData

用于提取公开网络数据的云平台。一个 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 服务器错误(需重试)。

使用时机

在以下情况下使用此技能:

  • 用户需要网页抓取。
  • 用户需要搜索引擎结果。
  • 用户需要结构化数据提取。
  • 用户需要电商、旅游、招聘或本地商户数据。
  • 用户明确询问 HasData。

三种执行模式

模式延迟适用场景端点
网页抓取 API秒级任意 URL — JS 渲染、CSS/AI 提取、截图POST /scrape/web
抓取器 API(同步)秒级已知平台(Google、Amazon、Zillow 等)的预解析 JSONGET /scrape/<vertical>/<resource>
抓取任务(异步)分钟~小时级批量提取、递归爬取、webhook 扇出POST /scrapers/<slug>/jobs

决策规则。 当平台存在对应的抓取器 API 时,默认使用它(预解析 JSON,无需维护选择器)。对于 API 未覆盖的任意 URL,使用网页抓取。仅在以下情况下才使用抓取任务:没有对应的 API 替代方案 — crawlercontactssec-edgaramazon-bestsellersamazon-product-reviews — *或*当异步扇出 + webhook 能比分页客户端循环更节省工程时间时。

始终存在的响应结构

{ "requestMetadata": { "id": "…", "status": "ok", "url": "…" }, "...": "端点特定" }

仅当 requestMetadata.status === "ok" 时才将数据视为有效。单独的 HTTP 200 状态码不足以保证。

高杠杆模式

  • SERP 优先的信息丰富化。 Google SERP 可以公开公司和个人资料简介的片段。用于业务或授权研究,避免不必要的直接抓取,仅在有合法目的和用户授权时才允许个人电子邮件/电话号码查找。
  • AI 模式 + 验证。 /scrape/google/ai-mode 获取答案和引用 → 对每个引用 URL 执行 /scrape/web(markdown 格式)→ 提供引用来源的 RAG 上下文,无需向量数据库。
  • 地图 → 线索。 /scrape/google-maps/search 返回企业网站和电话号码;仅从公开、允许的来源收集联系信息,并在任何外联使用前应用退出机制、频率限制和隐私法律约束。
  • 爬虫 → 语料库。 crawler 抓取任务搭配 outputFormat: ["markdown"]includePaths: "/docs/.+",一次提交即可生成适用于 LLM 的语料库。
  • 通过 SERP 丰富摘要进行预提取。 knowledgeGraphlocalResultsinlineShoppingResultsrelatedQuestions 包含预解析的公开事实。在考虑直接访问页面之前,始终先检查这些字段。

何时从代码调用(连接方式)

  • 身份验证: 每个请求都需要 x-api-key 头。从 HASDATA_API_KEY 环境变量读取。绝不硬编码,绝不记录日志。
  • 超时: 设置客户端超时时间 ≥ 300 秒。 HasData 自身的截止时间为 300 秒;超时较短的客户端会导致虚假失败,但完成后仍会被计费。
  • 重试: 仅对 4295xx 执行——指数退避,加入抖动。绝不重试 4xx(身份验证、验证错误)。
  • 并发: 上限为你的计划允许值。免费层为 1;更高的并发只会产生 429 错误。
  • 异步任务: 提交响应中的句柄是 body.id(整数),而非 jobId。立即持久化该 ID。每 10~30 秒轮询 GET /scrapers/jobs/<id>,使用退避策略;将 webhook 视为尽力而为,并始终搭配轮询。状态为 finished 时,结果中包含 data: {csv, json, xlsx} 的短期 URL——立即下载。

参见 references/code-recipes.md,其中提供了可直接使用的 Python 和 TypeScript 客户端,包含重试、退避、有界并发和完整的任务生命周期。

常见陷阱

  • 300 秒服务器截止时间。 匹配客户端超时。
  • 首先禁用 jsRendering,仅在页面需要时才启用——大多数静态页面无需 headless 浏览器即可正常解析。
  • 没有 cookies 参数——cookie 通过 headers["Cookie"] 传递。
  • includePaths 正则表达式区分大小写。 /blog/.+ 不会匹配 /Blog/...
  • 抓取任务 data 是双重包装的。 每一行是 body.data[i].data;外层包装包含 idjobIddataIdcreatedAtupdatedAt
  • requestMetadata.status === "ok" 是唯一的成功信号。 单独的 HTTP 200 状态码不足以保证。
  • Webhook 是尽力而为的,带有 3 次重试。 始终有轮询作为后备方案。

参考资料

  • [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 客户端,包含重试、退避、并发、轮询。

资源

  • 站点地图:<https://docs.hasdata.com/llms.txt>
  • API 状态码:<https://docs.hasdata.com/api-codes>
  • 积分与并发:<https://docs.hasdata.com/credits-and-concurrency>
  • 仪表盘:<https://app.hasdata.com>

限制

  • 需要访问 HasData 服务和有效凭证。
  • 数据质量和可用字段取决于目标网站和所使用的提取方法。
  • 重度 JavaScript 网站可能需要渲染,这可能会影响性能和成本。
  • 仅用于公开数据或用户有权访问的内容;遵守网站条款、robots/访问控制、隐私法律和速率限制。
  • 速率限制、配额和账户限制可能因端点和订阅计划而异。