Claude、Cursor、OpenClaw 都有这个毛病:一个插件把它治好了
用这三个工具读网页,经常翻车——这不是你的问题,也不是 AI 变笨了
不管你用 Claude、Cursor 还是 OpenClaw(下文简称”龙虾”),只要你让它”帮我看看这个链接”,就会碰到同一个问题:
“无法访问该链接,页面可能有访问限制。”“该 URL 返回了错误,无法获取内容。”“无法读取此网页,请将文章内容直接粘贴给我。”
换个说法重试,还是一样。你能打开,它打不开。
这不是概率问题,是结构性问题——AI 工具发出的请求和真人浏览器完全不同,全球超过 30% 的网站部署了 Cloudflare 等反爬虫系统,专门识别并拦截这类请求。
三个工具,同一个痛点
Web 工具拿到的是 403 拦截页,正文一个字没有,只能手动复制原文粘贴给它
@URL 功能读到的是空白或乱码,文档结构全丢,生成的代码错的离谱
你想让它读公众号、Substack、Medium 做信息收集
web_fetch 直接报错,读到的内容 70% 是广告和导航栏,Token 白白烧掉
三个工具的场景不同,底层原因是一样的:它们的 HTTP 请求没有浏览器特征,反爬系统一眼认出,直接拦截。
根本解法:让第三方”替”AI 去读
最简单的绕过方式,不是模拟浏览器,而是借道——让一个专门处理网页内容的公共服务替 AI 去取页面,再把干净的内容返回给 AI。
原理非常直接:
https://example.com/article
https://r.jina.ai/https://example.com/article
中转服务用真实浏览器渲染页面,提取正文,转成干净的 Markdown 返回给 AI。AI 收到的是纯净内容,不是被拦截的 HTML。
但问题是:没有一个中转服务是全能的。实测数据表明,三种方案各有优劣:
| 服务 |
速度 |
破防能力 |
Token 消耗 |
免费限额 |
| r.jina.ai |
|
中
|
最低 |
|
| markdown.new |
|
强
|
低 |
|
| defuddle.md |
|
强
|
中 |
|
最优策略是三层自动降级路由:r.jina.ai 先上,失败切 markdown.new,还不行上 defuddle.md。这样下来,日常 90% 的网页都能读到。
Web Content Fetcher:三层路由,装完自动生效
手动配置这套路由繁琐且容易忘,已有开发者将它打包成一个插件——Web Content Fetcher。
安装之后,不需要改任何配置,也不需要记前缀格式——每当 AI 需要读外部链接,插件自动按顺序尝试三个服务,哪个通了用哪个,全程对你透明。
默认首选。格式最干净,速度最快,正文提取精准,LLM 友好,适合大部分英文博客、技术文档、Substack
每天免费 200 次,超出需 API Key
Jina 失败或配额耗尽时自动接力。专门针对 Cloudflare 保护的内容站,国内技术博客命中率高
无次数限制
最后一道防线。覆盖面最广,前两个都拿不下时的备用,内容清洁度略低但成功率最高
无次数限制
三个工具怎么装
通过 MCP 服务接入,让 @URL 功能真正可用
在 Cursor 的 MCP 配置文件(mcp.json)中添加如下条目,重启后生效:
// mcp.json{“mcpServers”: {“web-content-fetcher”: {“command”: “npx”,“args”: [“web-content-fetcher-mcp@latest”] } }}
之后在 Agent 模式下,直接 @URL 引用任意链接,自动走三层路由抓取内容。
打开 Claude 桌面版 → 设置 → MCP → 添加服务器,填入:
名称:web-content-fetcher命令:npx web-content-fetcher-mcp@latest
重启后,对话中直接发链接即可。Claude 会自动调用插件读取内容,不再让你手动粘贴原文。
在对话框直接告诉龙虾:
帮我安装 web-content-fetcher 插件
如果已装 Find Skills,可以说:
用 Find Skills 找一个能读取被 Cloudflare 拦截网页的插件
安装完成,之后所有链接读取任务自动走三层路由,无需额外操作。
Scrapling 踩坑:格式全丢的大坑
如果你想在龙虾里用 Scrapling 做更强的反爬(比如读微信公众号),有一个大坑一定要提前知道:
千万不要直接调 get_all_text()。
这个方法会把段落、链接、图片、标题层级全部吃掉,输出一坨没有格式的纯文字流,AI 基本用不了。
正确姿势:先提 html_content,再用 html2text 转,记住这三个参数缺一不可:
# 正确使用方式(三个参数必须同时设置)html = page.html_contenth = html2text.HTML2Text()h.ignore_links = False# 保留链接,不加会丢失所有 URLh.ignore_images = False# 保留图片,不加会丢失图片引用h.body_width = 0# 不截断行宽,不加会乱换行result = h.handle(html)
能搞定什么,搞不定什么
新闻站 · 技术博客Medium · SubstackCloudflare 保护的内容站英文资讯页 · 产品文档GitHub README
需要登录才能看的内容纯 JS 渲染的 SPA 应用反爬极严的金融数据站需要实时交互的动态页
使用前必读
⚠️ 三个使用限制1. 隐私风险:你抓取的内容会经过第三方公共服务(r.jina.ai 等),公司内网资料、私人链接、含敏感信息的页面不要用这个方式处理。2. 稳定性:公共中转服务有时会挂。高频使用建议申请自己的 Jina API Key(免费档 200 次/天,够日常用)。3. 安全评级:这类插件因为涉及”代理中转网页内容”,安全扫描器通常会标记可疑。建议用于个人研究用途,不要在生产服务器上运行。
🔑Claude / Cursor / OpenClaw 读网页失败的根源是同一个:Cloudflare 把 AI 当爬虫拦了
🔁三层路由(r.jina.ai → markdown.new → defuddle.md)自动降级,90% 的网页都能读到
📦Web Content Fetcher 把这套逻辑封装好了,三个工具都能装,装完就用,不用改任何配置