在Dify中构建智能工作流时,常常需要让AI处理网页内容。但大语言模型本身无法直接访问互联网或解析混乱的HTML结构,必须借助工具将网页转为干净、可读的文本格式。Jina Reader API 正是为此而生——它能将任意公开网页一键转换为结构清晰的Markdown文本,是Dify工作流中网页数据输入的关键前置环节。以下是完整的配置与调用指南。
获取Jina Reader API密钥
进入 Jina AI Reader正式 页面 → 点击右上角“<> API”按钮 → 在弹出的面板中复制API Key。
【必须使用个人注册账号生成的Key,匿名试用Key在Dify中调用会返回401错误】
请妥善保管该Key——Jina不提供Key找回功能,一旦删除就只能重新申请。
小提示: 建议将Key保存在密码管理器或安全笔记中,避免因遗忘而重新生成。
在Dify知识库中配置Jina Reader爬虫
登录Dify控制台 → 进入「知识库」页面 → 点击「同步自Web站点」→ 选择「Jina Reader」→ 点击「配置」按钮。
粘贴刚复制的API Key → 勾选「启用自动同步」→ 点击「保存」。
配置成功后,“已配置的爬虫”列表里Jina Reader状态会显示为绿色「可用」。如果显示红色「不可用」,常见原因包括:
- API Key填写错误
- 网络策略拦截(如防火墙或袋里)
- Jina服务端临时限流
创建工作流调用Jina Reader提取单页内容
可根据使用场景选择以下两种方法之一。
方法一:用HTTP请求节点直连(推荐新手)
- 新建工作流 → 拖入「HTTP请求」节点 → 连接至开始节点。
- 在HTTP节点中设置:请求方式选GET,URL填
https://r.jina.ai/{url},其中{url}需替换为实际要抓取的网页地址,例如https://r.jina.ai/https://example.com/article。 - 注意URL必须是完整协议开头(
https://或http://),缺协议会导致Jina返回空响应。
方法二:封装为自定义工具(适合复用场景)
进入「工具」→「自定义工具」→「创建自定义工具」→ 粘贴以下OpenAPI定义:
"openapi":"3.0.0","info":{"title":"Jina Reader","description":"网页抓取工具。输入URL,输出Markdown格式的内容。","version":"1.0.0"},"servers":[{"url":"https://r.jina.ai"}],"paths":{"/{url}":{"get":{"operationId":"scrape_web_page","summary":"抓取网页","parameters":[{"name":"url","in":"path","description":"网页链接 (请直接填入完整链接,如 https://)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"text/plain":{"schema":{"type":"string"}}}}}}}}
保存后,该工具会出现在LLM节点的「可用工具」列表中,可被自然语言指令触发调用。
小提示: 如果经常需要抓取同一类网站(如新闻、博客),建议使用方法二,以便在其他工作流中快速复用。
将抓取结果喂给大模型做结构化处理
把HTTP请求节点或自定义工具节点的输出 → 连接到LLM节点的「上下文」输入端。
在LLM系统提示词中明确要求:“你收到的内容来自Jina Reader,已是清洗后的Markdown文本。请忽略HTML标签、广告、导航栏等无关信息,只基于正文内容回答问题。”
这一步很关键——不加此说明,模型容易把Markdown语法符号(如#、*)误当成原始网页残留噪音,影响摘要质量。
运行工作流,输入目标网页URL,观察LLM节点输出是否为纯文本摘要或结构化JSON。若输出中仍含大量链接、图片占位符或乱码,说明Jina未正确解析,需检查原网页是否含强反爬机制或需登录才能访问。
常见问题
- Q:Jina Reader返回401错误怎么办?
A:请确认API Key来自个人注册账号,而非匿名试用Key。同时检查Key是否已过期或被删除。如果仍有问题,尝试重新生成Key并更新配置。 - Q:抓取结果中包含大量无关信息(如广告、导航栏)?
A:Jina Reader默认会过滤大部分噪音,但某些动态加载或反爬严格的网站可能无法完全清理。可在LLM提示词中进一步要求“只提取正文内容”,或换用其他抓取工具(如Playwright)。 - Q:运行工作流时LLM节点输出为空?
A:先检查HTTP请求节点是否成功返回(状态码200)。常见原因:URL格式错误(缺少协议头)、目标网站限制访问(需登录)、Jina服务端限流导致返回空。可尝试用浏览器直接访问https://r.jina.ai/目标网址测试。
通过以上步骤,即可在Dify工作流中稳定获取任意网页的Markdown内容,并交由大模型进行摘要、问答或结构化提取。结合Jina Reader的自动同步功能,还能实现知识库的定期网页更新,让AI持续“阅读”最新信息。
