告别403:几个好用的开源网页抓取工具
写 Python 爬虫最崩溃的瞬间,就是明明代码没写错,结果对面直接甩给你一个 403 Forbidden。加了 User-Agent 还是不行,上 headless Chrome 结果陷入无尽的验证码循环。现在很多网站为了防爬,简直把“公开网页”变成了“付费 API”的诱饵。
如果是简单的文本抓取,首选 Firecrawl 或 Crawl4AI;如果需要像人一样操作网页,直接上 Browser-use。
下一篇
分享一个极简且支持 BYOK AI 的开源邮件客户端 Skim →
最近在折腾 AI Agent 的知识库构建,发现要把网页内容喂给 LLM,最关键的不是抓取,而是怎么把 HTML 变成干净的 Markdown。分享几个我实操过、能有效绕过这些麻烦的开源工具。
Firecrawl:直接把 URL 变成 Prompt
这个工具最强的地方在于它输出的是纯净的 Markdown,自动帮你剔除了导航栏、Cookie 弹窗和那些烦人的订阅模态框。它不仅能单页抓取,crawl 接口还能遍历全站,甚至能直接按你定义的 JSON 格式提取结构化数据。
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-...")
doc = app.scrape("https://example.com/docs/getting-started",
formats=["markdown"])
print(doc.markdown)Crawl4AI:本地部署的异步利器
如果你不想依赖第三方 API Key,或者抓取量大到心疼钱,Crawl4AI 是个绝佳替代方案。它是异步 Python 写的,同样支持 LLM-ready 的 Markdown 输出,没有配额限制,只要你的机器扛得住。
import asyncio
from crawl4ai import AsyncWebCrawler

async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(url="https://example.com")
print(result.markdown)
asyncio.run(main())Browser-use:给 AI Agent 装上“手”
对于那些必须交互(比如要登录、填表、点击多级菜单)才能看到内容的页面,传统的爬虫没戏。Browser-use 直接把 LLM 挂载到浏览器上,你用自然语言告诉它目标,它自己去分析 DOM 树并执行点击和滚动。

- 适用场景: 强交互页面、低频但复杂的自动化任务。
- 核心逻辑: LLM 驱动 → 实时分析 DOM → 模拟人类操作。
如果是简单的文本抓取,首选 Firecrawl 或 Crawl4AI;如果需要像人一样操作网页,直接上 Browser-use。
