别再从零手写爬虫:Apify 平台实战,代理与反爬全托管

原文:https://dev.to/syedahmedx3/stop-building-scrapers-from-scratch-a-developers-guide-to-apify-m4h(作者 @syedahmedx3)

如果你写过 requests + BeautifulSoup 爬虫,也亲眼看着它上线两周后死掉——IP 被封、选择器失效、莫名冒出验证码——那这篇文章就是写给你的。

2026 年,自己动手写爬虫的问题

如今的抓取目标早已不是爬虫教程假设的那种静态 HTML 页面。Cloudflare、Datadome 这类企业级 WAF 现在会校验 TLS 指纹,还会注入 JS 水合(hydration)检测,专门用来识别无头浏览器。这意味着从零手写的爬虫不只是脆弱,而是从第一天起就在对抗一套明摆着要弄垮它的基础设施。

到这个阶段,你做的已经不是“写爬虫”,而是在维护:

* 一个轮换的住宅代理池

* 无头浏览器指纹伪装

* 验证码(CAPTCHA)识别

* 重试与退避逻辑

* 存储与调度

这是整整一个基础设施团队的活,不是你真正产品上的一个顺手支线任务。

Apify 的不同之处

Apify 把抓取逻辑封装成 Actor——无服务器、容器化的任务单元:接收 JSON 输入,返回结构化输出(数据集、文件或队列)。周边的基础设施由平台全权负责:代理、浏览器运行时、调度、监控和存储。

它有两种用法:

1. 直接用 Store 里的现成 Actor(超过 30000 个)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("apify/web-scraper").call(
    run_input={
        "startUrls": [{"url": "https://example.com"}],
        "pageFunction": """
            async function pageFunction(context) {
                const { request, page } = context;
                const title = await page.title();
                return { url: request.url, title };
            }
        """
    }
)

dataset = client.dataset(run["defaultDatasetId"])
for item in dataset.iterate_items():
    print(item)


这就是一次完整的抓取运行:代理、浏览器、重试、存储全都到位,基础设施代码一行没写。

2. 用 Crawlee 自己构建

如果 Store 里没有合适的,可以用 Crawlee(Apify 为 Node.js 和 Python 开源的抓取库)。它提供的正是 Apify 官方 Actor 所依赖的那套基础原语——请求队列、自动扩缩容、浏览器池。用 apify push 一条命令就能部署到 Apify 云端,也可以接进 CI 流程。

对 AI/智能体工作流最关键的部分

如果你在做 LangChain、RAG 或者自主智能体相关的项目,真正的瓶颈通常不在模型,而在于能否稳定地拿到新鲜、结构化的网络数据喂给它。Apify 官方提供了 MCP 服务器,你可以在 Claude、Cursor 或任何兼容 MCP 的客户端里直接用自然语言调用 Actor,不用手写编排代码。对于需要按需获取实时网络数据、而不是依赖一份静态过期数据集的智能体流水线来说,这一点是实打实有用的,不只是宣传话术。

费用情况(实话实说)

定价按用量计算,不是固定包月:

  • 计算单元(Compute Units,CU):1 GB 内存跑 1 小时为 1 CU。轻量级 Actor 每次运行的成本只要零点几美分。
  • 住宅代理带宽:单独计费(约 8 美元/GB),在重度 JS 渲染的任务里,这通常才是真正的成本大头。
  • 部分 Store Actor 会在计算费之外加收按结果计费或按月租用的费用,用之前务必先看该 Actor 的定价标签页。
  • 免费档每月送 5 美元额度,不用绑卡,额度不可结转——做原型够用,跑生产负载不够。

什么时候不该用 Apify

如果你确实只需要一次简单的 API 调用去抓一个渲染好的页面,这种窄场景用更轻量的 fetch 类 API 可能更便宜。Apify 的价值体现在你需要可重复、有监控、有人维护的抓取时:定时运行、结构化输出、运行失败自动告警——而不是一次性的临时请求。

原文:https://dev.to/syedahmedx3/stop-building-scrapers-from-scratch-a-developers-guide-to-apify-m4h(作者 @syedahmedx3)

发布评论
全部评论(0)