原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Zenrows MCP

作者:ZenRows版本 2.19.0i★ –i电脑或云端
注册名称io.github.ZenRows/zenrows-mcp

安装

概览

作者提供的说明(英文原文)

Zenrows MCP server: Fetch, Extract, Batch, and Browser Sessions for AI agents

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 电脑或云端
  • 传输方式: stdio, Streamable HTTP
  • 分类: 网页与浏览器
  • 你需要填写:ZENROWS_API_KEY, Authorization

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • 在云端运行无需安装任何东西,通过互联网连接
  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "zenrows": {
      "command": "npx",
      "args": [
        "-y",
        "@zenrows/mcp"
      ],
      "env": {
        "ZENROWS_API_KEY": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http zenrows https://mcp.zenrows.com/mcp --header 'Authorization: your-value'

或者在你的电脑上运行

claude mcp add zenrows --env ZENROWS_API_KEY=your-value -- npx -y @zenrows/mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "zenrows": {
      "url": "https://mcp.zenrows.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "zenrows": {
      "command": "npx",
      "args": [
        "-y",
        "@zenrows/mcp"
      ],
      "env": {
        "ZENROWS_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "zenrows": {
      "type": "http",
      "url": "https://mcp.zenrows.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "zenrows": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@zenrows/mcp"
      ],
      "env": {
        "ZENROWS_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • ZENROWS_API_KEY 机密 env
    Optional. Without it, the first tool call creates a Free account (5,000 credits/month) you can claim later. ZENROWS_AUTO_SIGNUP=false opts out. Keys: https://app.zenrows.com/account/settings
  • Authorization 机密 HTTP header
    Bearer or OAuth. Needed for tool calls only. No auto-signup; agents can POST https://app.zenrows.com/api/agent/signup for a key (it may ask a short question first).

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

工具名称和描述与服务器在 2026年11月7日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • scrape

    Scrape any webpage and return its content using Zenrows (Fetch). Returns full-page content (markdown/HTML/PDF/screenshot). For structured JSON fields (products, articles, listings), the extract tool returns parsed fields instead of a full page body. By default the request uses au

  • extract

    Extract structured data from a webpage via Zenrows. Returns JSON fields (products, articles, listings) in "data" rather than a full page body. Set include_html to also get the page HTML. Modes: - auto (default): extract=auto, site-tailored Extract (currently free, billing may app

  • prepare_domain

    Prepare a domain so extract (mode=auto) works on it. Use this when extract returns error REQS007 with reason domain_not_prepared. Send the domain (the host, e.g. shop.example.com; a leading www. is dropped, and each host is prepared separately) and 1 to 5 example URLs of real pag

  • prepared_domain_status

    Check a domain submitted with prepare_domain, and the account's monthly allowance. Returns status (preparing, ready or failed), state (the current step), roles (one per page kind), a failure code and detail when it failed, the allowance (used, limit, remaining) and "next": what t

  • batch_create

    Submit a Batch job: many URLs scraped asynchronously in the cloud (Zenrows Batch API). Suited to large URL lists; scrape and extract handle single pages. Not the same as browser_batch. Tasks use automatic mode (mode=auto) by default: Zenrows enables JS rendering and premium proxi

  • batch_status

    Get a Batch job's latest run: job_id, run_id, status (pending, running, completed, stopped, failed), stats (total, completed, successful, failed) and the job. A failed run answers ok:false with error.code BATCH_INSUFFICIENT_CREDITS, BATCH_KEY_CAP_REACHED, AUTH_INVALID (subscripti

  • batch_wait

    Poll a Batch job until its run ends (completed, stopped or failed) or pauses, and return its status and stats like batch_status. If the wait runs out first, it returns the current state with ok:true, timed_out:true and a note: call batch_wait again. A paused run returns at once w

  • batch_results

    List a Batch run's result rows, a page at a time: up to limit rows (default 100, max 1000) and next_cursor. Pass next_cursor back as cursor to continue; it is null once every row was read. Each row has task_id, external_id, url, metadata, status (successful, failed, pending, proc

  • batch_content

    Read one Batch task's stored result, by job_id and task_id (from batch_results). A text result (HTML, Markdown, plain text, JSON) comes back inline, cut to max_chars (default 20000); a final note says when it was cut. A binary result (a PDF) is not inlined: the reply gives its re

  • batch_list

    List this account's Batch jobs, newest first, each with its latest run's status and stats. Filter by status (open or closed) and type (regular or scheduled). Pass next_cursor as cursor for the next page; a page can hold fewer than limit jobs while next_cursor is still set, so kee

  • batch_cancel

    Stop a Batch job's current run for good. No task still waiting is started or billed; tasks already in flight finish (and bill). Results so far stay readable with batch_results. Tasks that never started stay pending: batch_rerun (default failed and pending) runs them later. Idempo

  • batch_pause

    Pause a Batch job's current run: it picks up no new tasks until batch_resume. Tasks already in flight still finish and bill; for a hard cost stop use batch_cancel. A paused run still counts as an active job. Idempotent; a run that already ended answers with its final status and a

  • batch_resume

    Resume a paused Batch run: it picks up its remaining tasks again, billed as they finish. Idempotent on a run that is not paused; a run that already ended answers with its final status and already_ended:true. Needs credits: BATCH_INSUFFICIENT_CREDITS or BATCH_KEY_CAP_REACHED other

  • batch_rerun

    Start a new run of a Batch job whose latest run ended (completed, stopped or failed). By default it reruns only the tasks that failed or never started (status ["failed", "pending"]), and carries the others' results over: the recovery after a run that failed on credits or was canc

  • batch_delete

    Delete a Batch job with all its runs and results, for good. A run in flight stops picking up tasks at once, and the job frees its active-job slot. The job reads as not found right away; storage is cleaned up in the background. Idempotent. To keep the results, use batch_cancel ins

  • crawl_create

    Start a crawl from one URL (Zenrows Crawl API). Crawl follows the links in each page's HTML up to depth hops (no depth limit when depth is omitted), keeps the URLs that match include_patterns / exclude_patterns, and stays on the start URL's registrable domain (subdomains count).

  • crawl_get

    Get a crawl and one page of the URLs it kept: crawl_id, status (running, completed, stopped, failed), the crawl (with coverage: pages_fetched, pages_failed, items_found; webhook when set), results and next_cursor. completed with stop_reason max_items / max_pages means a limit end

  • crawl_results

    List the URLs a crawl kept, in the order it kept them, following the API's pages up to limit. Each result has url and, when the crawl has output_format, content_status (pending, fetched, failed) and, once fetched, content_url: pass it to crawl_content as content. While the crawl

  • crawl_content

    Read the stored page of one URL a crawl kept, in the crawl's output_format. Works only for crawls created with an output_format, and only for results whose content_status is fetched. Pass crawl_id and content_id: a content id, or content_url from a crawl_results row. Returns the

  • crawl_list

    List this account's crawls, newest first, with status and coverage (no results). Pass next_cursor as cursor for the next page; next_cursor is absent on the last page.

  • crawl_stop

    Stop a running crawl. No page still waiting is fetched or billed; pages already in flight finish. The URLs kept so far stay readable with crawl_results. A stopped crawl cannot resume. Idempotent: a crawl that already ended answers with its final status. A 429, 502, 503 or 504 is

  • crawl_wait

    Poll a crawl until it ends (completed, stopped, or failed) and return its status, its counts and the first 20 URLs (first_urls). For every result, call crawl_download (one file) or crawl_results (pages). A crawl that ends completed with no results and no error finished; it is not

  • crawl_download

    Save every result of a crawl to one local file, as JSON lines: url, content_status and, once fetched, content (the page). Returns the file's path and line count, not the results, so a crawl of any size costs one small reply. Read the file with your own tools. The file goes to pat

  • account_usage

    Read the current plan's credit allowance and how much of it is spent. Useful before a large batch, or after a 402 / AUTH004, to see whether the account has credits left and when the allowance renews. The call is free and does not use a concurrency slot. Credit costs per request:

  • browser_navigate

    Open a Zenrows Browser Sessions session and navigate to a URL. This is the entry point for all browser automation. It creates a new session backed by Zenrows' hosted browser infrastructure and navigates to the given URL in one step. Returns a session_id that every other browser_*

  • browser_close

    Close a browser session and free all associated resources, including the concurrency slot it holds.

  • browser_go_back

    Navigate back to the previous page in the browser history.

  • browser_go_forward

    Navigate forward to the next page in the browser history.

  • browser_reload

    Reload the current page of a browser session.

  • browser_click

    Click an element on the page using a CSS selector.

  • browser_hover

    Move the mouse cursor over an element to trigger hover effects.

  • browser_type

    Type text into an input element. Appends to existing content unless clear_first is set.

  • browser_fill

    Clear an input field and set its value, replacing what was there (browser_type appends instead).

  • browser_select_option

    Select an option from a dropdown element.

  • browser_check

    Check a checkbox or radio button.

  • browser_uncheck

    Uncheck a checkbox, found by CSS selector, in a browser session.

  • browser_focus

    Move focus to an element, triggering focus-dependent UI changes.

  • browser_press_key

    Press a keyboard key. Examples: "Enter", "Tab", "Escape", "ArrowDown", "Control+a".

  • browser_scroll

    Scroll the page in a given direction.

  • browser_drag

    Drag an element from its current position to a target element.

  • browser_get_accessibility_tree

    Get the ARIA accessibility tree of the current page as readable text. Shows the page structure and the selectors needed to interact with elements, in fewer tokens than a screenshot. The tree shows all interactive elements (buttons, inputs, links) with their roles, labels, and sta

  • browser_get_url

    Get the current URL of the browser session.

  • browser_get_title

    Get the title of the current page.

  • browser_get_text

    Get the visible text content of an element or the entire page body.

  • browser_get_attribute

    Get the value of a specific attribute on an element.

  • browser_get_html

    Get the HTML source of an element or the full page.

  • browser_query_selector_all

    Find all elements matching a CSS selector and return their text, HTML, and attributes.

  • browser_screenshot

    Take a screenshot of the current page or a specific element. Use for visual verification or when the accessibility tree is not sufficient.

  • browser_generate_pdf

    Render the current page as a PDF document.

  • browser_wait_for_selector

    Wait until an element matching the CSS selector is stable in the DOM. Set visible=true to also require the element to be visible (not hidden).

  • browser_wait_for_navigation

    Wait for the page to navigate to a new URL. It waits for the next navigation event, so a navigation that already finished is not seen and the call waits until timeout_ms. Pages that update without changing URL (AJAX/SPA) fire no navigation event. Optional timeout_ms (default 3000

  • browser_wait

    Wait for a fixed duration. browser_wait_for_selector waits only until an element appears.

  • browser_evaluate

    Execute JavaScript in the browser context and return the result. The script can change or delete the session's page state, such as cookies, storage and form data.

  • browser_get_cookies

    Get all cookies for the current page.

  • browser_set_cookies

    Set one or more cookies in the browser session. A cookie with the same name, domain and path replaces the existing one.

  • browser_clear_cookies

    Clear all cookies for the current browser session.

  • browser_get_local_storage

    Read one localStorage value in the current page context.

  • browser_set_local_storage

    Write one localStorage value in the current page context. An existing value under the same key is replaced.

  • browser_clear_local_storage

    Delete every localStorage entry in the current page context.

  • browser_new_tab

    Open a new browser tab. Returns a tab_id to use with browser_switch_tab.

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月10日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 ZenRows 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 678 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 60 个工具描述,未发现针对 AI 的隐藏指令

与“网页与浏览器”中的其他服务器比较i

  • 星标数多于此分类中其他 1411 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1411 个服务器的 90% 更新
  • 基础检查结果等于或优于此分类中其他 1411 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Zenrows MCP 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:ZENROWS_API_KEY, Authorization

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(2.19.0)于3天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Browser Use

Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.

作者:browser-use广泛使用↓ 155.2万/周★ 12万20天前更新

电脑或云端✓ browser-use.com

Chrome DevTools MCP

MCP server for Chrome DevTools

作者:ChromeDevTools广泛使用↓ 188.4万/周★ 5.5万18天前更新

在你的电脑上运行

MCP Server Browser

MCP server for browser use access

作者:bytedance广泛使用↓ 792/周★ 4万14个月前更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Zenrows MCP Server

The Zenrows MCP (Model Context Protocol) server is the standard way AI systems use Zenrows' web data infrastructure. A single connection gives your AI assistant, agent, or application reliable, real-time access to the live web, including the protected web.

📚 Full documentation: docs.zenrows.com/mcp/overview


Why Zenrows MCP

  • Reach sites that normally block bots. Get reliable access to protected sites at scale, without building anti-bot handling yourself.
  • Managed web data infrastructure. Proxy rotation, headless browser orchestration, anti-bot handling, and session management run on Zenrows' infrastructure.
  • Plug into any AI you already use. Works with any MCP client, including AI assistants, agent frameworks, AI SDKs, IDE plugins, and custom applications.
  • Plain English, no scraping code. Describe the task naturally and the AI picks the right tool. No selectors, no proxy management, no anti-bot tuning.

Quick start

Zenrows MCP supports two transport options. Both expose the same set of tools and capabilities. Pick the one that fits your client.

What works without a key:

  • Local (`npx @zenrows/mcp`): no signup, no key. The first tool call creates a Free account (5,000 credits/month) that you can claim later, keeping the key and its usage. Opt out with ZENROWS_AUTO_SIGNUP=false. In CI, set ZENROWS_API_KEY as a secret or persist ZENROWS_HOME between runs.
  • Remote (`https://mcp.zenrows.com/mcp`): initialize and tools/list answer without a key; tool calls need one (OAuth in clients that support it, or a Bearer key). The remote server never creates accounts by itself. A headless agent can create a Free account with POST https://app.zenrows.com/api/agent/signup and use the returned apiKey as the Bearer token. The endpoint may first answer 428 with a short question; POST {"challenge_id": "...", "answer": "..."} back to the same URL to get the key.
Remote MCP server

Use the hosted Zenrows MCP server when your AI application calls an LLM API directly. The server runs on Zenrows' infrastructure, so there is nothing to install, configure, or update.

Server URL:

https://mcp.zenrows.com/mcp

Transport: Streamable HTTP

Authentication: OAuth or API key as Bearer token. Pass your Zenrows API key in the Authorization header on every request (or complete OAuth in clients that support it).

Authorization: Bearer YOUR_ZENROWS_API_KEY

Most MCP clients accept this through an authorization shorthand field on the tool config and forward it as the Bearer token automatically. Some clients use a free-form headers field instead. Either approach works.

Remote MCP does not auto-create accounts. initialize and tools/list work without a key; a keyless tool call gets a 401 whose body names the signup endpoint (agent_signup). Use OAuth “Create Free account” in the client, pass an existing API key, or, from a headless agent, POST https://app.zenrows.com/api/agent/signup (anonymous; returns apiKey, or first a 428 question to answer with challenge_id and answer; per-network limits apply) and retry with Authorization: Bearer .

Example: OpenAI Responses API
import os

from openai import OpenAI

ZENROWS_API_KEY = os.environ["ZENROWS_API_KEY"] client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

response = client.responses.create( model="gpt-5", tools=[ { "type": "mcp", "server_label": "zenrows", "server_description": "Web scraping MCP server for accessing live web content.", "server_url": "https://mcp.zenrows.com/mcp", "authorization": ZENROWS_API_KEY, "require_approval": "never", } ], input="Visit https://news.ycombinator.com/ and summarize the three most recent posts.", )

print(response.output_text)

For the full walkthrough with framework-specific examples, see the Remote MCP server docs.

Local MCP server

Use the local stdio configuration when your MCP client runs the server as a local subprocess instead of calling a remote URL. This is the standard setup for desktop AI tools and IDE plugins, including Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Zed, and JetBrains IDEs.

Package: @zenrows/mcp on npm

Authentication:

  1. ZENROWS_API_KEY environment variable, or
  2. Key previously stored in ~/.zenrows/secrets.json, or
  3. Auto-signup (default): if neither is set, the server still starts, and the first tool call provisions a Free plan account via POST /api/agent/signup, persists the key + claim metadata under ~/.zenrows/ (secrets.json + account.json, mode 0600), and prints a claim URL on stderr. Zenrows may first ask a short question: the tool call then returns it, and the agent answers with the account_signup_answer tool, then retries. If signup is refused (for example the per-network cap in CI), that tool call returns an error saying when to retry; in CI, set ZENROWS_API_KEY as a secret or persist ZENROWS_HOME between runs. Opt out with ZENROWS_AUTO_SIGNUP=false: tool calls then return an error until a key is set. The signup request also sends a random per-machine id (shared with the Zenrows CLI) and a guess at the host agent (claude-code, cursor, …) so signups can be attributed; set ZENROWS_TELEMETRY=off to omit both.

Requirements: Node.js installed (for npx to work).

Configuration (with your own key):

{

"mcpServers": { "zenrows": { "command": "npx", "args": ["-y", "@zenrows/mcp"], "env": { "ZENROWS_API_KEY": "YOUR_ZENROWS_API_KEY" } } } }

Zero-config (auto-signup):

{

"mcpServers": { "zenrows": { "command": "npx", "args": ["-y", "@zenrows/mcp"] } } }

Optional: ZENROWS_CRAWL_API_BASE sets the Crawl API base URL for the crawl_* tools (default https://api.zenrows.com/v1). Set it only to point those tools at another deployment.

Optional: ZENROWS_BATCH_API_BASE sets the Batch API base URL for the batch_* tools (default https://async.api.zenrows.com/v1). Set it only to point those tools at another deployment.

The exact location of this config varies by client. See the per-client setup guides for the file path for your client.


Tools

The Zenrows MCP exposes these tool families:

ToolPurpose
`scrape`Full-page content → Markdown, plain text, HTML, PDF, or screenshot (plus helper outputs).
`extract`Structured JSON (extract=auto or css_extractor; autoparse is deprecated) + optional stealth flags. extract=auto is currently free (billing may apply later) and works on any prepared domain, with any API key. Returns parsed fields only; set include_html: true to also get the page HTML. Error REQS007 says why in reason: domain_not_prepared → call prepare_domain (the error carries its arguments; one URL works; we recommend 3 or more of the same page type, so add them to example_urls, up to 5); page_not_recognised → the domain is prepared, but this page is not one Extract extracts (a page with nothing to extract, such as a home page): try a product, article or listing page instead, retry it once in a few minutes if it should work, otherwise use css_extractor, and do not prepare again; domain_not_enabled → preparing does not help, use css_extractor. The error never offers autoparse, and the tool never falls back to it: fallback_autoparse is deprecated and has no effect (when it is true, the result carries a note saying it was ignored).
`prepare_domain` / `prepared_domain_status`Prepare a domain for extract (mode=auto) after a REQS007 with reason domain_not_prepared. prepare_domain takes the domain and 1 to 5 example URLs. One works; we recommend 3 or more of the same page type (e.g. 3 product pages: https://www.example.com/products/a, /products/b and /products/c), because Extract compares pages of one type to check the fields it found and fill in fields one page is missing. Several page types can share the 5 (e.g. 3 product pages + 2 search-result pages). It returns at once with status: "preparing" (it never waits), and costs no credits. Preparation takes a few minutes: poll prepared_domain_status about every 30 seconds (status, current step, failure code, the account's monthly allowance used / limit / remaining, and next, the step to take now) until status is ready, then call extract again. Each new domain uses one allowance slot; a domain that is already prepared answers ready at once with already_prepared: true and uses none. The domain is the host: shop.example.com and example.com are prepared separately, and a leading www. is dropped.
`batch_create` / `batch_status` / `batch_wait` / `batch_results` / `batch_content` / `batch_list` / `batch_cancel` / `batch_pause` / `batch_resume` / `batch_rerun` / `batch_delete`Cloud Batch API fan-out (async.api.zenrows.com). Same credits as Fetch. Not browser_batch. See Batch tools below.
`crawl_create` / `crawl_get` / `crawl_results` / `crawl_content` / `crawl_download` / `crawl_list` / `crawl_stop` / `crawl_wait`Crawl API (api.zenrows.com/v1/crawls). New. Crawl is still evolving: new features are coming, limits may be tuned, and the changelog announces each change. Give one start URL, get back the URLs behind it on the same registrable domain (subdomains count), optionally with each page's HTML (output_format: "html"). crawl_create returns at once; call crawl_wait (counts and the first 20 URLs), then crawl_download to save every result to a local JSON-lines file (default ~/.zenrows/crawls/ .jsonl; a path must stay inside ~/.zenrows/crawls; an existing file is kept unless overwrite: true; the hosted server writes no file and returns the download URL and a curl command instead), or crawl_results to page through them. Leave depth out of crawl_create for no depth limit: the crawl follows links until max_pages or max_items (default 100 each) stops it, and each page fetched is billed as one scrape. Set idempotency_key on crawl_create to make a retry safe. crawl_content takes crawl_id and content_id (a content id or a result's content_url). Reads retry on 429, 502, 503, 504 and network errors (up to 3 times, honoring Retry-After up to 30 seconds); crawl_create retries only with an idempotency_key, and never on 429; crawl_stop retries on 429, 502, 503 and 504 (repeating a stop is safe; a 503 crawl_busy means the stop was not saved yet), up to 3 times and 50 seconds at most in all, and returns CRAWL_BUSY if a crawl_busy persists. May return CRAWL_NOT_ENABLED (Crawl is not enabled for this account).
**browser_***30+ tools for full browser automation (navigation, clicks, forms, JS, cookies, tabs, sessions).
Batch tools

A Batch job scrapes many URLs asynchronously. The usual flow: batch_create, then batch_wait until the run ends, batch_results to page through the rows, and batch_content to read one task's page.

  • `batch_create` submits one closed job with all its tasks, up to 100,00

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx