如何将 AdsCrawl 与 Searlo 结合使用:搜索数据 + 浏览器自动化

将 Searlo 的 SERP API 与 AdsCrawl 的云浏览器结合,发现搜索结果并抓取 JavaScript 密集型页面。包含设置、工作流、代码和常见问题。

Anonymous10 分钟阅读

如何将 AdsCrawl 与 Searlo 结合使用:搜索数据 + 浏览器自动化

Searlo 和 AdsCrawl 解决的是同一个问题的两个不同方面。Searlo 通过返回干净的 JSON 格式的实时搜索结果,告诉你什么在排名以及在哪里查找。AdsCrawl 打开一个真实的云浏览器,告诉你页面上实际有什么——渲染后的 HTML、Markdown、结构化字段或截图,即使网站是 JavaScript 密集型也能处理。

本指南展示如何将它们连接起来:账户设置、可运行的两步工作流、可改编的代码、实际示例,以及这种组合消除的故障模式。

为什么要将 SERP API 与云浏览器结合使用?

First viewport screenshot of Changelog - Product Updates & New Features | Searlo

First viewport screenshot of Changelog - Product Updates & New Features | Searlo.

Searlo 首屏截图 — SERP API:以干净 JSON 格式返回实时搜索结果。

SERP API 提供大规模发现能力。浏览器自动化 API 提供深度。单独使用时,各自都会留下缺口:

  • 仅使用 Searlo 返回标题、URL、摘要和 AI 答案——但不返回目标页面的完整渲染内容。
  • 仅使用 AdsCrawl 可以渲染任何内容,但你仍然需要一份值得渲染的 URL 列表。盲目爬取会浪费积分和时间。

两者结合,Searlo 负责廉价、快速的发现,AdsCrawl 负责有针对性的高保真提取。你只需为重要的页面支付浏览器会话费用。

各产品负责的功能

任务 Searlo AdsCrawl
关键词 → 排名 URL 是 否
新闻、地图、购物、AI 答案 是 否
渲染后的 HTML / Markdown 否 是
截图和视觉差异 否 是
登录或交互流程 否 是(远程 CDP)
输出格式 JSON HTML、Markdown、JSON、PNG

前提条件

First viewport screenshot of Pricing: Pay-As-You-Go Search API from $0.20/1K | Searlo

First viewport screenshot of Pricing: Pay-As-You-Go Search API from $0.20/1K | Searlo.

定价首屏截图:按需付费搜索 API 低至 $0.20/1K | Searlo。

开始之前,请收集四样东西:

  1. 一个 Searlo API 密钥——在 Searlo 仪表板中创建。免费套餐包含 3,000 积分,按需付费包起价 $3.99,无需订阅。
  2. 一个 AdsCrawl API 密钥——来自 AdsCrawl 仪表板。免费计划包含 500 一次性积分;Hobby($9/月)、Starter($49/月)和 Pro($199/月)可扩展积分、浏览器并发数和云浏览器配置文件。
  3. 一个运行时——Python 3.9+ 或 Node.js 18+,并带有 HTTP 客户端。
  4. 一个目标关键词列表——即使五个关键词也足以验证流水线。

将两个密钥保存在服务器端。切勿将它们放在客户端代码中。

步骤 1:使用 Searlo 获取搜索结果

First viewport screenshot of Searlo — SERP API: live search results as clean JSON

First viewport screenshot of Searlo — SERP API: live search results as clean JSON.

更新日志首屏截图 - 产品更新与新功能 | Searlo。

向 Searlo 发送查询并读取 JSON 响应。确切的端点和参数名称来自你的 Searlo API 文档;下面的结构反映典型的 SERP 调用。

import os, requests

SEARLO_KEY = os.environ["SEARLO_API_KEY"]

def search(query: str, limit: int = 10):
    resp = requests.get(
        "https://api.searlo.com/search",
        headers={"Authorization": f"Bearer {SEARLO_KEY}"},
        params={"q": query, "num": limit},
        timeout=30,
    )
    resp.raise_for_status()
    return resp.json()["results"]

urls = [r["url"] for r in search("cloud browser automation api")]
print(urls[:5])

这里有两个 Searlo 功能很重要。原生 MCP 支持让 AI 代理可以直接将搜索作为工具调用,而 TOON 格式在你将结果输入模型时可将令牌使用量减少约 60%。如果你的流水线最终使用 LLM,请请求 TOON 而不是原始 JSON。

步骤 2:使用 AdsCrawl 渲染每个 URL

现在将发现的 URL 交给 AdsCrawl。对于大多数提取任务,POST /html 是合适的起点:它是同步的,使用安全的浏览器默认值,并避免管理有状态会话。

export ADSCRAWL_API_KEY="your-api-key"

curl --fail-with-body -sS -X POST "https://api.adscrawl.net/html" \
  -H "content-type: application/json" \
  -H "x-api-key: $ADSCRAWL_API_KEY" \
  -d '{
    "url": "https://example.com/article",
    "contentMode": "markdown",
    "waitUntil": "domcontentloaded"
  }'

AdsCrawl 使用 x-api-key 标头进行身份验证。云浏览器生命周期请求也接受会话 JWT 或 cookie,远程 CDP 发现使用嵌入在会话 URL 中的数据令牌,而实时控制使用一个单独的一次性令牌,该令牌在 30 秒后过期。

选择正确的 AdsCrawl 工作流

选择能解决页面的最小工作流:

  • POST /html——用于静态和中等动态页面的渲染 HTML 或 Markdown。
  • POST /screenshot——用于监控、QA 或视觉回归的视觉捕获。
  • SPA 提取模板——用于单页应用的结构化 DOM 和网络字段提取。
  • 远程 CDP 会话——当你必须点击、登录、滚动或分页时,进行完整的 Playwright、Puppeteer 或原始 CDP 控制。
  • 云浏览器配置文件——有状态的浏览器身份,在停止后保留设置,适用于重复访问同一网站。

完整的两阶段流水线

First viewport screenshot of Custom Search JSON API Pricing 2026: $5/1K | Searlo

First viewport screenshot of Custom Search JSON API Pricing 2026: $5/1K | Searlo.

以下是一个脚本中的整个循环:搜索、过滤、渲染、存储。

import os, requests

SEARLO_KEY = os.environ["SEARLO_API_KEY"]
ADSCRAWL_KEY = os.environ["ADSCRAWL_API_KEY"]

def search(query, limit=10):
    r = requests.get(
        "https://api.searlo.com/search",
        headers={"Authorization": f"Bearer {SEARLO_KEY}"},
        params={"q": query, "num": limit},
        timeout=30,
    )
    r.raise_for_status()
    return r.json()["results"]

def render(url, mode="markdown"):
    r = requests.post(
        "https://api.adscrawl.net/html",
        headers={
            "content-type": "application/json",
            "x-api-key": ADSCRAWL_KEY,
        },
        json={"url": url, "contentMode": mode, "waitUntil": "domcontentloaded"},
        timeout=90,
    )
    r.raise_for_status()
    return r.json()

for hit in search("best serp api for ai agents"):
    try:
        page = render(hit["url"])
        print(hit["url"], len(page.get("content", "")))
    except requests.HTTPError as e:
        print("failed", hit["url"], e.response.status_code)

对 HTTP 429 响应添加指数退避。AdsCrawl 强制执行每用户运行配额,因此并行渲染的突发可能会在达到计划限制之前触及上限。

实际示例

自定义搜索 JSON API 定价 2026 首屏截图:$5/1K | Searlo。

1. 竞争性内容情报

在 Searlo 中搜索一个关键词集群,使用 AdsCrawl 渲染前十个结果,并对比标题结构、字数和 schema 标记。你会得到已经排名的内容的事实图景,而不是猜测。

2. 具有实时网络基础的 AI 代理

Searlo 的 MCP 支持让代理可以作为工具调用获取搜索结果。当代理判断某个页面重要时,它会触发 AdsCrawl 渲染并接收干净的 Markdown——比原始 HTML 节省大量令牌,并且比摘要准确得多。

3. 潜在客户和实体发现

使用 Searlo 的地图和购物覆盖范围查找本地企业或产品列表,然后使用 AdsCrawl 渲染每个目标页面,以提取仅在 JavaScript 运行后出现的联系方式、价格或库存信息。

4. 带视觉证明的排名跟踪

随时间存储 Searlo 排名位置,并捕获相同 URL 的 AdsCrawl 截图。当排名下降时,你既有位置历史记录,也有渲染后的页面状态来解释原因。

5. JavaScript 渲染网站的 QA

如果客户网站依赖客户端渲染,普通的 HTTP 获取不会揭示损坏的布局。通过 AdsCrawl 渲染它,并在不同部署之间比较截图。

处理棘手页面

有些目标页面需要的不止是渲染:

  • 反机器人墙——通过住宅代理或你自己的自定义代理路由,并使用具有轮换 User-Agent 和动态区域路由的托管浏览器身份。
  • 登录限制内容——打开远程 CDP 会话,进行一次身份验证,并为后续请求重用 cookie。
  • 无限滚动和分页——通过 CDP 使用 Playwright 或 Puppeteer 驱动页面,而不是请求单个快照。
  • 区域特定结果——将 Searlo 的市场参数与 AdsCrawl 的区域路由对齐,以便搜索结果和渲染页面描述相同的受众。

成本和积分规划

两个产品都计量使用量,因此在扩展之前对流水线进行建模:

  • Searlo 积分按搜索消耗,并在网络、新闻、地图、购物和 AI 答案之间共享。新用户积分有效期为一年。
  • AdsCrawl 积分随会话使用量和并发数扩展,而不是按请求收费,这使得一旦你测量样本后预算就可预测。

一个实用规则:保持 Searlo 调用广泛,AdsCrawl 渲染狭窄。在两个阶段之间积极过滤——删除重复域名,跳过已渲染的页面,并限制每个关键词的渲染次数。

何时只需要其中一个

并非每个项目都需要两者。

  • 仅 Searlo——排名跟踪、摘要监控、关键词研究,以及任何搜索结果本身就是交付物的任务。
  • 仅 AdsCrawl——你已经有来自站点地图、数据库或 CRM 的 URL 列表,并且需要渲染内容、截图或交互式自动化。
  • 两者——发现加深度,这正是 AI 代理、竞争情报和内容审计所在之处。

如果你仍在评估浏览器基础设施,AdsCrawl vs Browserbase vs Browserless 对比涵盖了 CDP 控制、隐身、代理和定价。比较托管数据交付与原始浏览器控制的团队应阅读 AdsCrawl vs Zyte。

相关阅读

常见问题

我需要同时使用 Searlo 和 AdsCrawl 吗?

只有当你的工作流需要发现和深度时才需要。Searlo 返回排名 URL 和摘要;AdsCrawl 返回它们背后的渲染页面。如果你已经有 URL,仅 AdsCrawl 就足够了。

我应该从哪个 AdsCrawl 端点开始?

POST /html 配合 contentMode: "markdown"。它是同步的,不需要会话管理,并且涵盖大多数提取任务。只有当页面需要交互时才转向远程 CDP。

如何使用 AdsCrawl 进行身份验证?

在 x-api-key 标头中发送你的完整 API 密钥。将其保存在受信任的服务器或密钥管理器中。远程 CDP 实时控制使用一个单独的一次性令牌,该令牌在 30 秒后过期。

Searlo 结果可以直接提供给 AI 代理吗?

可以。Searlo 支持原生 MCP,因此代理可以将搜索作为工具调用,并且 TOON 格式与原始 JSON 相比可减少约 60% 的令牌使用量。

当页面阻止渲染时会发生什么?

通过住宅或自定义代理路由,并使用具有轮换 User-Agent 的托管浏览器身份。对于登录限制页面,在远程 CDP 会话中进行身份验证并重用 cookie。

我应该如何预算积分?

首先测量一次样本运行。Searlo 从共享积分池中按搜索计费;AdsCrawl 按会话使用量和并发数计费。保持搜索广泛,渲染狭窄,并在两个阶段之间去重 URL。

结论

Searlo 和 AdsCrawl 配合得很好,因为它们回答不同的问题。Searlo 回答“什么在排名,我应该在哪里查找?”AdsCrawl 回答“那个页面实际包含什么?”将它们分两个阶段连接——搜索,然后渲染——你会得到一个在发现层廉价、在提取层准确的流水线。

从双方的免费套餐开始,端到端运行五个关键词,并在扩展之前测量你的积分消耗。要更广泛地了解 AdsCrawl 与其他抓取栈的比较,请参阅 Scrape.do 和 Zyte 对比 和 Scrapfly 评论。

来源和进一步阅读