6 款开源工具,夺回你的 Web 控制权
精选开源工具集合,帮助开发者从商业平台锁定中解放,重建去中心化 Web。
精选开源工具集合,帮助开发者从商业平台锁定中解放,重建去中心化 Web。
解决令人抓狂的 403 封禁和付费墙问题。
你好,我是 Maneshwar。我正在开发 git-lrc,这是一个会在每次 commit 时运行的微型 AI 代码审查工具。它完全免费,并已在 Github 上开放源代码。欢迎给 git-lrc 点个 Star,帮助更多开发者发现这个项目。也请试用一下,并分享你的反馈。
如果你在过去两年里尝试抓取过公开网页,应该已经注意到了这个问题。
你写了四行 Python,得到一个 403。你加上 User-Agent header,得到一个态度稍微客气一点的 403。
你启动 headless Chrome,却只看到一个永远转个不停的验证页面。
最终,你开始查看各种数据 API 的价格页面。在那里,热情洋溢的落地页提出:每月只需 100 美元,就能把完全相同的公开 HTML 卖还给你。
与此同时,大型实验室以我们永远无法企及的规模吸走了同一个 Web 上的数据。如今,想用程序读取一个网页,标准做法反而变成了付钱给别人。
Web 从“默认开放”变成了“开放,但前提是你看起来像一个手里握着鼠标的人”。
所以,我们来聊聊八个正在悄悄夺回这种访问能力的开源项目。其中大多数我都在真实的棘手场景中用过,有几个确实非常出色。
关于 Star 数量,先简单说明一下:我会提到其中几个项目的 Star 数,因为它可以作为一个还不错的信号,说明“已经有人替你踩过这些坑了”。但它并不能反映项目是否仍在维护。一个仓库可能有 7 万个 Star,最后一次 commit 却停留在 2023 年。一定要先检查 commit graph,再看 Star 数量。
它能做什么:你交给它一个 URL,它还给你干净的 markdown。不是那种带着导航栏、Cookie 横幅和四个 Newsletter 弹窗的 HTML,而是 Markdown。标题、段落、链接,就这些。
它能做的也不只是处理单个页面。
crawl endpoint 可以遍历整个站点;map 可以在不抓取所有内容的情况下提供 URL 清单;如果你描述了想要的数据结构,structured extraction 还能从页面中提取具有明确类型的 JSON。
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-...")
doc = app.scrape("https://example.com/docs/getting-started",
formats=["markdown"])
print(doc.markdown)
适合使用它的场景:你希望以文本形式获取 Web 内容,而且现在就要;相比组建一支爬虫团队,你更愿意先把功能发布出去。
firecrawl / firecrawl
用于大规模搜索、抓取 Web 并与之交互的 API。🔥
用于大规模搜索、抓取 Web 并与之交互的 API。🔥 这是一个 Web context API,能够查找来源、提取内容,并将其转换为 Agent 可以直接使用的干净 Markdown 或结构化数据。它是开源项目,同时也提供托管服务。
嘘。嘿,就是你,加入我们的 stargazers 吧 :)
业界领先的可靠性:覆盖 96% 的 Web,包括大量使用 JS 的页面——无需操心 proxy,只需获取干净的数据(参见 benchmarks)。
快如闪电:在数百万个页面上,P95 latency 为 3.4 秒,专为实时 Agent 和动态应用构建。
为 LLM 准备好的输出:干净的 markdown、结构化 JSON、截图等——减少 token 消耗,构建更出色的 AI 应用。
棘手的工作由我们处理:Rotating proxies、orchestration、rate limits、被 JS 阻挡的内容等——零配置。
为 Agent 做好准备:只需一条命令,即可将 Firecrawl 连接到任何 AI agent 或 MCP client。
它能做什么:这是一个开源的异步 Python crawler,可以输出适合 LLM 使用的 markdown。
不需要 API key,不需要 credits,也没有 rate limit——除了目标站点施加的限制,以及你自己的良知应该施加的限制。
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())
适合使用它的场景:你需要处理大量数据,有基础设施团队,或者数据在法律上不能交给第三方服务。
🚀🤖 Crawl4AI:对 LLM 友好的开源 Web Crawler 和 Scraper。别害羞,来这里加入我们:https://discord.gg/jP8KfhDhyN
可靠的大规模 Web 数据提取,现在的成本效益远高于任何现有方案。
👉 在这里申请 early access。我们将分阶段开放,并与早期用户密切合作。名额有限。
Crawl4AI 可以把 Web 转换为干净、可供 LLM 使用的 Markdown,适用于 RAG、Agent 和数据流水线。快速、可控,并经过一个拥有 5 万多个 Star 的社区实战检验。
✨ 查看最新更新 v0.9.2
✨ v0.9.2 的新变化:维护补丁版本。修复了关闭 streaming crawl 时 MemoryAdaptiveDispatcher 的 task/page 泄漏、Docker Playground 的“Advanced Config”和 Monitor WebSocket 身份验证、Playwright headless-shell 打包,以及 GPU(ENABLE_GPU=true)Docker 构建问题。Release notes →
✨ 近期的 v0.9.0:Docker API server 的重大默认安全版本。Auth 默认开启;除非提供 token,否则 server 仅绑定 loopback;以及……
另外,这两个项目最终得出了同一个洞见,观察这一过程很有意思。
它能做什么:把 LLM 接入一个真实的浏览器,并让它操作浏览器。点击、输入、滚动、填写表单、登录,以及完成多步骤结账流程中的导航。
你用英文描述目标,它自己理解 DOM。
适合使用它的场景:目标确实需要交互、处理量较小,而且除此之外就只能让人手动完成。
browser-use / browser-use
🌐 让 AI agent 能够访问网站。轻松实现在线任务自动化。
Browser Use 可以让 AI agent 像你一样使用 Web 浏览器——打开页面、点击按钮、输入内容和填写表单。你只需要描述任务,它就会完成。例如,你可以让它:
Browser Use Cloud Docs ↗
如果你想在自己的 Agent(Claude Code、Codex、Cursor、Hermes、OpenClaw 等)中使用 Browser Use,请粘贴下面这段 prompt,它会自行完成所有设置:
Install or upgrade browser-use to the latest stable version with uv using Python 3.12, run `browser-use skill
它能做什么:这是一个 Python 爬虫框架。Request scheduling、concurrency、retries、middleware、item pipelines、autothrottle,应有尽有。
它大约从 2008 年起就一直运行在生产环境中,抓取过的页面数量比这份列表里其他所有工具加起来还要多。
适合使用它的场景:大规模、稳定且大部分为静态内容的目标。它是那个无聊但正确的答案,而无聊但正确的答案能帮你赚钱。
Scrapy,一个快速、高层次的 Python Web crawling 和 scraping 框架。
Scrapy 是一个从网站提取结构化数据的 Web scraping 框架。它支持跨平台运行,需要 Python 3.10 或更高版本。目前由 Zyte(前身为 Scrapinghub)和众多其他贡献者共同维护。
pip install scrapy
然后按照文档学习如何使用它。
如果你希望参与贡献,请参阅 Contributing。
它能做什么:这是 Apify 团队推出的 Node.js 爬虫库,现在也支持 Python。
Proxy rotation、session management、browser fingerprint spoofing、带 backoff 的 automatic retries、重启后仍能保留的 request queues,以及统一的 API——无论底层使用的是普通 HTTP、Playwright 还是 Puppeteer。
适合使用它的场景:你身处 Node 生态,或者目标站点具有很强的对抗性,而你需要一整套反封禁技术栈,又不想为此购买商业服务。
Crawlee——一个面向 Node.js 的 Web scraping 和浏览器自动化库,用于构建可靠的 crawler。支持 JavaScript 和 TypeScript。可以为 AI、LLM、RAG 或 GPT 提取数据,也可以从网站下载 HTML、PDF、JPG、PNG 及其他文件。它能够与 Puppeteer、Playwright、Cheerio、JSDOM 和原始 HTTP 配合使用,同时支持 headful 和 headless 模式,并带有 proxy rotation。
Crawlee 覆盖从 crawling 到 scraping 的整个流程,帮助你构建可靠、快速的 scraper。
即使使用默认配置,你的 crawler 也会表现得像真人一样,在现代 bot protection 的监测下保持低调。Crawlee 为你提供了一整套工具,可以在 Web 上抓取链接、提取数据,并将数据存储到磁盘或云端,同时保留足够的可配置性,以适应项目需求。
Crawlee 以 crawlee NPM package 的形式提供。
👉 在 Crawlee 项目网站上查看完整的文档、指南和示例 👈
相比 JavaScript,你更喜欢 🐍 Python 吗?👉 看看 Crawlee for Python 👈。
建议阅读 Crawlee 文档中的 Introduction tutorial,了解更多信息。
Crawlee 需要 Node.js 16 或更高版本。
试用 Crawlee 最快的方法,是使用 Crawlee CLI 并选择 Getting started 示例。CLI 将会……
它能做什么:这是一个能够记住元素原本特征的 Python scraper。因此,当网站改版,你的 .product-title 变成 .ProductCard__title--x7f2 时,它不会返回空列表,而是根据相似度重新定位这个元素。
适合使用它的场景:你需要长期维护大量 spider,而 selector rot 才是真正的瓶颈。
🕷️ 一个自适应 Web Scraping 框架,无论是单个 request 还是全规模 crawl 都能处理!
العربيه | Español | Português (Brasil) | Français | Deutsch | 简体中文 | 日本語 | Русский | 한국어
Selection methods · Fetchers · Spiders · Proxy Rotation · CLI · MCP
Scrapling 是一个自适应 Web Scraping 框架,无论是单个 request 还是全规模 crawl 都能处理。
它的 parser 会学习网站变化,并在页面更新时自动重新定位你的元素。它的 fetcher 开箱即用,可以绕过 Cloudflare Turnstile 等 anti-bot system。它的 spider framework 则允许你扩展到并发、多 session 的 crawl,支持暂停和恢复以及自动 proxy rotation——所有这些只需要几行 Python。一个库,毫不妥协。
速度飞快的 crawl,提供实时统计和 streaming。它由 Web Scraper 为 Web Scraper 和普通用户打造,每个人都能找到适合自己的功能。
from scrapling.fetchers import Fetcher, AsyncFetcher, StealthyFetcher, DynamicFetcher
StealthyFetcher.adaptive =
每一段讨论这个话题的视频,最后都会抛出同样的推销话术:Lead generation agency 每个月会为这些数据收取数千美元,而你的成本为零,所以赶紧去发财吧。
我想谨慎地谈谈这件事,因为 Web data 确实是一门真正的生意,但“你的成本为零”这几个字,承担了这句话里多得惊人的解释工作。
你的成本不是零。
你的成本包括 residential proxies,这是最大的一项支出,而且没有任何开源项目会附送给你。
你的成本包括 CAPTCHA solving。
你的成本包括四个目标站点在同一周改版时所耗费的工程师工时。
你的成本还包括 storage、monitoring 和 pager。
这些 agency 真正收费的并不是 scraping code——正如你刚才看到的,这些代码免费而且优秀。
它们收费的是 operational layer,以及一项保证:即使网站在周日发生了变化,数据在周一仍然能够按时送达。
这是一项真正的服务,也确实值真金白银。
只是入场之前,你要清楚自己真正卖的是什么。
你早就知道这一段会来。
能够抓取某些内容,并不等于你有权抓取。二者之间的差距,正是人们的基础设施遭到封禁,甚至公司被起诉的地方。
以下是我实际做法的简短总结,不构成法律建议:
阅读 robots.txt 并遵守它。除了道德原因,这也是出于自身利益:有礼貌的 crawler 能活得更久。激进的 crawler 会导致整个 IP range 被封,到那时,你团队里的任何人都无法再抓取这个 domain。
在对方限制你之前,先主动限制自己的 rate。Concurrency 设置为 2,再加上一点 delay,几乎总是足够的。没有人需要对一个小型网站的 origin server 每秒发送 200 个 request。
检查 Terms of Service,尤其是涉及登录后内容时。“公开可访问”和“你获得了许可”是两种不同的主张。
Personal data 属于完全不同的法律领域。GDPR、CCPA 及类似法规,并不会因为数据出现在公开页面上就不再适用。抓取产品价格和抓取姓名及 email address,不是同一种行为。
说真的。打开 devtools,在 network tab 中按 Fetch/XHR 过滤,然后仔细看看。
我写过的 scraper 中,大约有三分之一原本只需要三行代码,直接请求一个始终摆在那里的 JSON endpoint 就能完成。
Scraping 是在这种方法失败之后才做的事,而不是跳过检查、直接采用的替代方案。
六个项目,共享同一个理念:Web 依然是可读的;读取它的工具依然免费且开放;过去两年里出现的大部分高墙,其实是由 TLS fingerprints 和惯性构成的,而不是真正的锁。
根据任务选择工具,而不是根据 Star 数量。先从轻量方案开始。检查是否存在 API。在别人的 server 上做一个有礼貌的访客。
如果你只打算从本文记住一件事,那就是:下次遇到莫名其妙的 403 时,在伸手去用浏览器之前,先试试 impersonate="chrome"。你会觉得自己非常傻,同时又非常开心。
我漏掉了什么?我知道你们当中有些人一直收藏着一个心爱的冷门 Go crawler,就等着找个借口聊聊它。把它发到评论区吧,每一条评论我都会看。
AI agent 写代码很快,但它们也会在不告诉你的情况下,悄悄删除逻辑、改变行为并引入 bug。你往往要等到 production 出问题时才会发现。
git-lrc 可以解决这个问题。它接入 git commit,在每个 diff 落地之前完成审查。60 秒即可完成设置,完全免费。
欢迎提供任何反馈,也欢迎贡献者加入!它已经上线、开放源代码,任何人现在都可以使用。
免费的微型 AI Code Review,在 Git Commit 时自动运行。
| 🇩🇰 Dansk | 🇪🇸 Español | 🇮🇷 Farsi | 🇫🇮 Suomi | 🇯🇵 日本語 | 🇳🇴 Norsk | 🇵🇹 Português | 🇷🇺 Русский | 🇦🇱 Shqip | 🇨🇳 中文 | 🇮🇳 हिन्दी |
免费的微型 AI Code Review,在 Commit 时自动运行。
如今的 GenAI 就像一辆没有刹车的赛车。它加速极快——你描述一件事,大段代码立刻出现。但 AI agent 会悄悄破坏系统:删除逻辑、放宽约束、引入昂贵的云服务调用、泄露 credentials,以及改变行为——却不告诉你。你往往要等到 production 出问题时才会发现。
git-lrc 就是你的制动系统。它接入 git commit,在每个 diff 落地之前运行 AI review。60 秒即可完成设置,完全免费。
简而言之,git-lrc 可以帮助你在事故真正发生之前,预防 Outage、Breach 和 Technical Debt。
概览:10 类风险 · 跟踪 100 多种 failure pattern · 每个 commit……
如需采取进一步行动,你可以考虑屏蔽此人和/或举报滥用行为。