8.0
热点
AI SCORE
编程提效2026-08-10 11:00
实时网页数据喂给LLM Agent的实战方法
dev.to · AI#LLM#数据采集#Agent
Editor brief · 编辑速览
通过Scrapio API将动态网页转为干净Markdown,解决LLM获取实时信息的数据输入难题。
原文首发于 Scrapio blog——也在此分享。
LLM agent 的能力取决于你给它们的上下文。静态知识的截止日期就是训练日期——但大多数有趣的任务需要知道一个页面此刻的内容:竞争对手的定价、新闻文章、产品列表。
瓶颈通常在于如何把干净的文本传入 prompt。原始 HTML 太嘈杂,Playwright 又太复杂。这里有一条简单路径。
Scrapio 默认返回干净的 Markdown。一次 API 调用即可剥离导航栏、广告和模板内容——只留下可阅读的主体。
import httpx
API_KEY = "sk-..."
def get_page_markdown(url: str) -> str:
resp = httpx.post(
"https://api.scrapio.dev/v1/fetch",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"url": url, "output": ["markdown"]},
timeout=30,
)
resp.raise_for_status()
return resp.json()["outputs"]["markdown"]
from openai import OpenAI
client = OpenAI()
def answer_about_page(url: str, question: str) -> str:
page_content = get_page_markdown(url)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "You are a research assistant. Answer based only on the provided web page content.",
},
{
"role": "user",
"content": f"Page content:\n\n{page_content}\n\nQuestion: {question}",
},
],
)
return response.choices[0].message.content
print(answer_about_page(
"https://example.com/pricing",
"What is the cheapest paid plan and what does it include?"
))
Markdown 比原始 HTML 小 5–10 倍,这意味着成本更低、模型的压力也更小。
如果目标页面通过 JavaScript 加载内容(单页应用、仪表盘),请将 render_js 设为 True:
json={"url": url, "output": ["markdown"], "render_js": True}
Scrapio 会启动一个无头浏览器,等待页面渲染稳定后返回最终内容。