反爬虫大师的网络爬取API

网页爬取曾经需要整个设置。启动Playwright或Puppeteer,管理浏览器实例,处理分页,应对JavaScript渲染页面,编写重试逻辑,并自己解析HTML。在爬取单个页面之前要花费半天的工作。

Cloudflare刚刚将所有这些压缩到一个API调用中。

1、新功能

Cloudflare的浏览器渲染现在在公开测试中有一个/crawl端点。你给它一个URL。它爬取整个网站。它以你需要的任何格式返回内容------HTML、Markdown或结构化JSON。

没有浏览器管理。没有脚本。没有需要照看的基础设施。

这可以在Workers免费和付费计划上使用。

2、基础知识

两个请求。这就是整个工作流程。

开始爬取:

复制代码
# Initiate a crawl
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl' \
  -H 'Authorization: Bearer <apiToken>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://blog.cloudflare.com/"
  }'

你获得一个作业ID。爬取在后台异步运行。

检查结果:

复制代码
# Check results
curl -X GET 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl/{job_id}' \
  -H 'Authorization: Bearer <apiToken>'

完成后,响应看起来像这样:

复制代码
{
  "total": 10,
  "finished": 10,
  "records": [{
    "url": "https://blog.cloudflare.com/",
    "metadata": { "title": "...", "status": 200 },
    "html": "<!DOCTYPE html>..."
  }]
}

每个页面都返回其URL、标题、HTTP状态和完整内容。干净。

3、为什么这实际上很重要

明显的用例是Cloudflare提到的那些------模型的训练数据、RAG管道、内容监控。所有这些都需要从站点批量提取内容,而在此之前,这意味着要么为爬取服务付费,要么维护自己的爬取服务。

但这里还有一个微妙的事情。这在无头浏览器中运行。这意味着重JavaScript的站点------单页应用程序、React站点、任何需要JS渲染的东西------在返回内容之前都会被正确渲染。大多数爬虫在没有大量设置的情况下都无法做到这一点。

你不会得到因为内容动态加载而半空的原始HTML。你得到的是真正的浏览器看到的东西。

4、值得了解的控制

当基本爬取不够时,端点有可选参数。

爬取深度和页面限制------设置你想要多深并限制总页面数。当你只想要顶级内容并且不需要深入五个链接时很有用。

通配符URL模式 ------包含或排除特定路径。假设你只想要/blog/内容并想要跳过/docs/。你可以设置它。

URL发现源------爬虫从网站地图、从每个页面上的链接,或两者中发现新页面。你选择。

增量爬取 ------这是一个实用的。使用modifiedSincemaxAge跳过自你上次爬取以来没有更改的页面。如果你在定期计划上运行它来监控站点,你只获取实际新的内容。

静态模式 ------设置render: false,爬虫完全跳过无头浏览器,只是获取原始HTML。对于不需要JavaScript渲染的静态网站快得多。

5、它尊重robots.txt

爬虫遵守robots.txt指令,包括crawl-delay。它被设计为像一个有礼貌的机器人而不是锤子。Cloudflare有关于robots.txt和网站地图最佳实践的文档,以帮助你的爬取从一开始就顺利进行。

6、何时实际使用它

一些场景,这取代了大量自定义工作:

**在文档站点上构建RAG系统。**将爬虫指向文档,以Markdown格式获取所有内容,将其分块,嵌入它。特别是Markdown输出足够干净,可以直接馈送到大多数管道而无需预处理。

**监控竞争对手内容。**每周运行一次增量爬取,将modifiedSince设置为你上次运行的日期。只有更改的页面才会返回。你确切地看到什么是新的。

**创建训练数据。**批量爬取站点,收集HTML或结构化JSON,馈送到你的数据管道。异步作业模型处理大型站点而不会超时。

**一次性研究。**有时你只需要一个站点的所有内容而不需要为它编写脚本。就是这样。

7、结束语

完整的可选参数列表在developers.cloudflare.com/browser-rendering/rest-api/crawl-endpoint。爬取深度、缓存、URL源、通配符模式------所有的都在那里。

robots.txt最佳实践在developers.cloudflare.com/browser-rendering/reference/robots-txt。

端点目前在公开测试中。免费计划用户可以在没有任何付费承诺的情况下尝试它。

两个curl命令爬取整个站点。这就是我们现在所在的位置。


原文链接:反爬虫大师的网络爬取API - 汇智网

相关推荐
ZC跨境爬虫10 小时前
免费验证码识别:用ddddocr实现Playwright自动化登录
爬虫·python·自动化
ZC跨境爬虫10 小时前
Playwright进阶操作:鼠标拖拽与各类点击实战(含自定义拖拽实例)
前端·爬虫·python·ui
Pocker_Spades_A11 小时前
Python快速入门专业版(五十六)——爬虫会话管理:Cookie与Session原理及实战(保持登录状态)
开发语言·爬虫·python
进击的雷神1 天前
攻克多级导航循环与class属性ID提取:基于双层循环架构的精准爬虫设计
爬虫·架构
ZC跨境爬虫1 天前
Playwright核心操作实战精讲(QQ空间+百度+iframe,含等待_键盘_iframe操作)
前端·爬虫·python·计算机外设
ZC跨境爬虫1 天前
对称加密算法详解(DES篇):特点、实现与逆向实操
前端·javascript·爬虫
南通DXZ1 天前
Python爬虫进阶:Selenium模拟真人操作(解决反爬+动态网页)
爬虫·python·selenium
shark22222222 天前
Python 爬虫实战案例 - 获取社交平台事件热度并进行影响分析
开发语言·爬虫·python
Blurpath住宅代理2 天前
社交媒体数据采集技术指南:从合规获取到营销洞察
网络·爬虫·动态代理·数据抓取·住宅ip·住宅代理
JoshRen2 天前
Python中的简单爬虫
爬虫·python·信息可视化