当前位置: 首页 > news >正文

反爬虫大师的网络爬取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 - 汇智网

http://www.cnnetsun.cn/news/1255169.html

相关文章:

  • 跨平台设计协作:使用Typora与万象熔炉·丹青幻境撰写图文技术博客
  • ARM64 多级页表映射机制与Linux内核实现剖析
  • Step3-VL-10B-Base模型API安全设计:防范常见网络攻击
  • AI龙虾:傅盛的救星,还是猎户星空的幻影?
  • 【PHP 8.9类型系统终极前瞻】:20年核心贡献者独家解密RFC草案未公开的5大类型安全增强机制
  • GLM-OCR模型在AIGC内容审核流程中的集成实践
  • Jetson Nano开发实战:eMMC存储与SDK Manager系统烧录全解析
  • Qt进度条实战:从QProgressBar到QProgressDialog的进阶应用
  • 从下载到对话:通义千问2.5-7B完整部署流程详解
  • 基于Mathcad的单相逆变器PI控制器参数设计与频域验证
  • 基于N32G430的便携式宽压可调DC电源设计
  • 基于通义千问1.5-1.8B的智能客服机器人:MySQL数据库对话日志分析与优化
  • 存储技术实践笔记3_深入NVMe磁盘操作(从用户态ioctl到内核态bio的完整路径解析)
  • 百川2-13B在边缘计算场景的探讨:模型轻量化与内网穿透部署
  • Z-Image-Turbo-辉夜巫女运维指南:使用Shell脚本实现模型服务的自动监控与重启
  • Python3.11镜像效果展示:独立环境管理,轻松复现实验结果
  • GESP备考 | 2024年06月1级-编程题2《立方数判定》实战解析(C++实现)
  • Qwen3-Embedding-4B效果可视化:余弦相似度分数保留4位小数的设计意义与浮点精度验证
  • ESP32 SDIO从机与SDHOST主机寄存器级驱动开发详解
  • DAMOYOLO-S模型服务化:使用Docker容器化与Kubernetes进行集群部署
  • 深入解析FOC:从电机电磁原理到SVPWM实现
  • PP-DocLayoutV3性能调优:降低响应延迟与提升吞吐量实践
  • 【密码学实战】从“与门”到“神经网络”:混淆电路如何守护隐私推理?
  • MogFace人脸检测模型WebUI项目重构:优化Java八股文中的设计模式应用
  • Protel 99 SE元件库创建与导入Sch文件报错解决方案全攻略
  • Qwen2.5-VL-7B-Instruct快速上手:微信小程序对接WebUI实现移动端图文问答
  • Stable Yogi Leather-Dress-Collection风格迁移实验:将名画艺术风格应用于皮革设计
  • Qwen3-TTS-12Hz-1.7B-CustomVoice部署案例:阿里云ECS GPU实例一键部署脚本
  • 基于ColorEasyDuino与MQ-135传感器的空气质量监测系统实战(含完整Arduino代码)
  • uniapp跨平台禁止下拉刷新实战:Android与iOS双端适配方案