promptgarten 🌱
🌍 DE
指南●●○5 分钟 · +40 XP

用智能体从网页获取数据

在很多现代网页上,一次简单的 HTTP 请求只能看到一个空壳——JS 渲染、速率限制和 robots.txt 都是工具箱里不可或缺的部分。

JS 单页应用(SPA)的问题

很多现代网页都是单页应用(Single-Page App):第一次 HTTP 请求只会返回一个几乎空的 HTML 骨架,真正的内容之后才通过浏览器里的 JavaScript 加载进来。这时候,一次简单的 curl 调用或一个简单的抓取工具,看到的只是那个空壳——而不是人在浏览器里看到的文本。

抓取工具和渲染

像 WebFetch 这样的抓取工具会取回服务器的原始响应,如果是 HTML 就把它转换成 Markdown——这对传统的、服务器端渲染的页面已经够用了。而对于 JS 较重的页面,则需要一个渲染服务,或者一个真正的(无头)浏览器,先把页面执行一遍,再返回渲染完成的内容。

简单说说法律层面

网站根目录下的 robots.txt 文件规定了哪些区域允许自动化抓取——遵守它是网络世界的基本共识,尽管从技术上讲它并不具有强制力。除此之外,各个网站的使用条款(ToS)有时也会明确限制抓取行为。

遵守速率限制

如果短时间内请求过多,服务器通常会返回状态码 429("Too Many Requests")。如果智能体忽略这个信号继续发请求,可能会让网站过载,或者自己被封禁——适当的暂停和温和的请求节奏,是干净抓取的一部分。

示例

提示词:"抓取 https://example.com/produkte,列出所有产品名称及其价格。如果该页面是客户端渲染的,看不到任何内容,请明确说明这一点,而不是返回一个空列表。"

小测验

为什么在很多现代网页上,一次简单的 HTTP 请求(比如 curl)几乎得不到什么内容?

来源

相关主题

工具使用(Tool Use):LLM 如何调用工具 ●●○计算机操作(Computer Use):当 AI 控制鼠标和键盘时 ●●●在实践中保护 agent 安全 ●●○什么是 API?(说人话版) ●○○