Dify实现外网数据抓取(Playwright)并自动导入知识库

云涛君_3270

云涛君_3270

2026-10-22

966人浏览

原创

必须先用playwright抓取网页并导入dify知识库:安装playwright及chromium,编写crawl_url函数提取title/content,再通过api或markdown文件导入,最后配置自定义工具实现提问时自动抓取更新。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

dify实现外网数据抓取(playwright)并自动导入知识库

要在Dify中让AI模型实时使用最新网页内容,必须先从外网抓取目标页面数据,再将结构化结果自动导入知识库——Playwright是目前最稳定支持JavaScript渲染页的抓取工具,且Dify官方明确兼容其输出格式。

安装并配置Playwright环境

在部署Dify服务的同一台服务器或容器内执行:pip install playwright,然后运行 playwright install chromium 下载无头浏览器核心。

这一步不能跳过:Dify的自定义工具调用依赖Playwright启动Chromium实例,【缺少chromium二进制会导致后续所有抓取任务静默失败】。

验证是否可用:新建 test.py,写入三行代码并运行,看到打印出网页标题即成功。

编写可被Dify调用的抓取脚本

创建 web_crawler.py,开头声明模块依赖和基础参数:

导入 os、json、sys;读取环境变量 DIFY_API_KEY 和 DIFY_BASE_URL;定义函数 crawl_url(url: str) → dict,返回包含 title、content、url 的字典。

在函数内部用 sync_playwright() 启动 Chromium → 新建 page → 设置 5 秒超时 → 跳转到 url → 等待 body 加载完成 → 提取 document.title 和 article 标签文本(若无 article 则回退到 main 或 #content)→ 清理换行与多余空格 → 返回结构化数据。

注意:不加等待逻辑会拿到空 content,因为 JavaScript 渲染需要时间;直接读取 innerHTML 可能混入广告脚本,必须用 text_content() 提纯。

Playwright 1.61.1
Playwright 1.61.1

Playwright 1.61.1 历史版本 npm 官方下载,适合旧项目依赖固定和跨浏览器自动化测试。

下载

将抓取结果推送至Dify知识库

方法一:通过Dify API上传文本片段

构造 POST 请求到 {DIFY_BASE_URL}/v1/knowledge-bases/{kb_id}/documents,headers 带上 Authorization: Bearer {DIFY_API_KEY},body 是 JSON,含 name(设为 url 的域名)、data(即 crawl_url 返回的 content 字符串)、metadata(包括 source_url、title、timestamp)。

方法二:保存为Markdown文件后批量导入

把每次抓取结果存成 pages/{url_hash}.md,头部用 YAML front matter 写明 title 和 source;用 Dify 后台「知识库→导入文档→选择文件夹」触发扫描,【文件名不能含中文或空格,否则导入时会被跳过】。

配置Dify自定义工具并绑定工作流

登录Dify管理后台 → 进入「设置→自定义工具」→ 点击「+ 创建工具」→ 工具类型选「HTTP」→ URL 填写你部署的 web_crawler.py 所在接口地址(如 http://localhost:8000/crawl)→ 设置 method 为 POST → 添加参数 url(required, string)→ 保存。

进入「应用编排」画布 → 拖入「自定义工具」节点 → 连接至「知识库检索」前 → 在工具节点配置中勾选「执行后自动更新知识库」→ 选择对应知识库ID → 发布应用。

此时用户提问涉及该网页内容时,系统会先触发抓取、立即入库、再检索返回,整个链路无需人工干预。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

dify playwright

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

2026.06.05

737

15

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

2026.06.05

265

15

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

2026.06.05

236

15

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

2026.10.21

20

15

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

2026.10.21

0

16

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

2026.10.21

0

16

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

120

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

80

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

60

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 153人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 150人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习