葫芦流 · 场景

把抓取结果接到自有系统

创建工作流并运行,再用同一 API Key 读取数据集行。

控制台与 API 操作同一套工作流和数据集。请先学会控制台;当你自己的软件必须创建运行或拉取行时,再用这些调用。

熟悉 HTTP 与 curl 的开发者。非开发者可跳过本页。

约 15 分钟 用 API 跑通抓取→读行
  1. 01 创建密钥

    控制台 → API 密钥 → 创建。复制以 hulu_ 开头的 token(只显示一次)。在 shell 里 export HULU_KEY。每个 /api/v1 请求需要头 Authorization: Bearer $HULU_KEY。

    卡住时: 网站登录用的会话 cookie 不能用于 /api/v1。缺密钥或错误密钥返回 HTTP 401。

  2. 02 发现字段

    用 POST /api/v1/workflows 创建一个暂停的空工作流,再 POST …/scrape-preview,带上样例 URL、mode 与 requirement。把想保留的字段列表拷进抓取节点配置。预览只发现字段,不写数据集。

    卡住时: scrape-preview 需要你拥有的某个工作流 id(鉴权与账号范围)。保持暂停可避免试验时被调度。

  3. 03 写入图并运行

    用 PATCH 写入 nodes 与 edges。边用 [{from, to}]。抓取须已含 fields。POST …/run 并等待结束。HTTP 502 时阅读 detail(字符串或带 node_runs 的对象)看哪步失败。

    卡住时: 创建/更新可自由保存画布;运行需要剩余额度——HTTP 402 表示额度不足。

  4. 04 读取行

    GET /api/v1/datasets 找 id,再 GET /api/v1/datasets/{id}/rows?page=1&limit=50。批量下载用 GET …/export?format=csv|json(有行数上限)。

    卡住时: POST …/run 会等到结束。查看历史节点输出时用 GET …/runs/{id}。

curl

把 $ID、$DATASET_ID 换成前面接口返回的值。创建密钥时原始 token 只显示一次——请像密码一样保管。

export HULU_KEY=hulu_…

curl -X POST https://huluflow.com/api/v1/workflows \
  -H "Authorization: Bearer $HULU_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Monitor","status":"paused","interval_minutes":1440,"graph":{"nodes":[],"edges":[]}}'

curl -X POST https://huluflow.com/api/v1/workflows/$ID/scrape-preview \
  -H "Authorization: Bearer $HULU_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/list","mode":"list","requirement":"title, price, url"}'

curl -X PATCH https://huluflow.com/api/v1/workflows/$ID \
  -H "Authorization: Bearer $HULU_KEY" \
  -H "Content-Type: application/json" \
  -d '{"graph":{"nodes":[{"id":"s1","type":"scrape","config":{"url":"https://example.com/list","mode":"list","fields":[{"name":"title","label":"title","type":"text"},{"name":"url","label":"url","type":"url"}]}},{"id":"st1","type":"store","config":{"dataset_name":"products","key_fields":["url"]}}],"edges":[{"from":"s1","to":"st1"}]}}'

curl -X POST https://huluflow.com/api/v1/workflows/$ID/run \
  -H "Authorization: Bearer $HULU_KEY"

curl "https://huluflow.com/api/v1/datasets/$DATASET_ID/rows?page=1&limit=50" \
  -H "Authorization: Bearer $HULU_KEY"

额度与失败

运行失败时,打开该次运行,阅读失败节点的 error 与输出——不要只看工作流列表猜测。URL 生成最多 500 条。抓取节点默认每次运行 20 个 URL(生成更多页时请提高 limit)。额度按套餐发放,运行按实际请求网页次数扣减。额度不足时运行返回 HTTP 402。

失败时先打开该次运行的节点 error,不要只看工作流列表。

接下来

完整状态码与字段表见 API 参考。