从零开始打造AI知识库:使用爬虫自动化采集网页内容的完整教程
言简意赅的讲解crawler爬虫解决的痛点
童鞋们在实现私有化大语言模型和实现精准参数归纳与程序执行之后还是不满足AI相关的能力。在 AI 驱动的知识管理时代,快速搭建属于自己的知识库已成为很多开发者和团队的核心需求。本文将带你一步步创建一个基于网页爬取的知识库,并将其直接应用到 GPT 模型中。这种方法适用于个人博客、企业文档甚至特定网站的内容爬取与整理。
为什么需要爬虫知识库?
AI 模型如 GPT 的强大能力依赖于高质量的上下文知识库。通过爬虫,我们可以:
- 自动化采集分散在网页上的信息。
- 定制化选择和过滤相关内容。
- 快速构建一个可用的语义搜索和对话式 AI 系统。
环境搭建与依赖安装
以下是快速搭建爬虫系统并获取知识库的完整步骤:
1. 启动容器环境
使用 Docker 来创建一个隔离的环境,确保爬虫工具运行的依赖无冲突。
docker run -it --name gpt-crawler-container node:lts bash
--name
:命名容器为gpt-crawler-container
。node:lts
:使用 Node.js LTS 版本镜像。bash
:进入交互式 Shell。
2. 安装依赖
在容器中执行以下命令,安装必要的工具和依赖:
2.1 更新系统并安装基础工具
apt-get update && apt-get install -y git curl gnupg
apt-get update
:更新软件包列表。git
:用于克隆代码仓库。curl
和gnupg
:下载和验证相关工具的依赖。
2.2 安装 Playwright 依赖
npx playwright install && npx playwright install-deps
- Playwright 是一个强大的浏览器自动化工具,支持多种浏览器的爬取任务。
2.3 克隆爬虫项目并安装依赖
cd /home && git clone --depth=1 https://github.com/builderio/gpt-crawler && cd gpt-crawler
npm install
git clone
:从官方仓库获取爬虫代码。npm install
:安装爬虫项目的所有依赖。
3. 配置爬虫
爬虫的核心是配置文件 config.ts
,它定义了爬取目标、内容选择器和其他关键参数。
示例配置说明
export const defaultConfig: Config = {
url: "https://www.builder.io/c/docs/developers",
match: "https://www.builder.io/c/docs/**",
selector: `.docs-builder-container`,
maxPagesToCrawl: 50,
outputFileName: "output.json",
};
url
:爬虫的起始 URL。例如,这里从 Builder.io 的开发者文档页面开始。match
:用于筛选需要爬取的链接,支持通配符。- 示例:
https://www.builder.io/c/docs/**
会匹配所有文档子页面。
- 示例:
selector
:CSS 选择器,指定需要提取内容的区域。- 示例:
.docs-builder-container
是文档内容的容器。
- 示例:
maxPagesToCrawl
:限制最大爬取页面数,避免过度爬取。outputFileName
:保存爬取结果的文件名。
完整参数解析
以下是 config.ts
中的所有可配置项:
url
:爬虫起始页面 URL。如果提供站点地图 (sitemap),则优先下载站点地图内容。match
:用于匹配 URL 的规则,仅爬取符合规则的页面。selector
:提取内容的 CSS 选择器,决定爬取页面中的哪部分内容。maxPagesToCrawl
:最大爬取页面数。outputFileName
:输出文件的名称,爬取结果保存为 JSON 格式。resourceExclusions
:可选,排除某些资源类型(如图片、视频、样式文件等),加快爬取速度。maxFileSize
:可选,限制文件的最大大小(MB)。maxTokens
:可选,限制输出文件的最大 token 数,用于控制 GPT 模型输入的大小。
示例配置:采集文浩(楠搏万)
博客文章
以下是一个具体示例,爬取指定博客中的内容,我展示的示例为爬取我自己的文浩(楠搏万)的博客:
import { Config } from "./src/config";
export const defaultConfig: Config = {
url: "https://wenhaono1.blog.csdn.net/?type=blog",
match: "https://wenhaono1.blog.csdn.net/article/details/**",
selector: `.user-profile-body-right,.blog-content-box`,
maxPagesToCrawl: 500,
outputFileName: "output.json",
maxTokens: 200000,
};
url
:CSDN 博客首页。match
:匹配所有文章详情页。selector
:选择文章内容和用户信息的 CSS 类。maxTokens
:将结果限制在 200,000 个 token 以内,便于直接用作 GPT 的输入。
4. 运行爬虫
执行以下命令开始爬取:
npm start
成功运行后,结果会存储在配置文件中指定的 output.json
中。
5. 知识库直接用于 GPT
爬取完成的 output.json
文件是直接可用的 GPT 知识库:
- 打开 GPT 的知识库管理界面。
- 上传
output.json
。 - 知识库即刻生效,无需额外转换或调整。
常见问题与优化
-
如何优化爬取速度?
- 使用
resourceExclusions
排除不必要的资源(如图片、CSS 文件)。 - 通过
maxPagesToCrawl
限制页面数。
- 使用
-
如何确保抓取的内容干净整洁?
- 精确定义
selector
。 - 可在后续处理时清理无关内容。
- 精确定义
-
配置
maxTokens
的意义?- 避免输出文件过大,确保符合 GPT 模型的输入限制。
总结
通过简单的步骤,我们成功完成了从爬虫搭建到 AI 知识库生成的全过程。无论是技术博客、企业文档还是行业资讯,都可以用这种方式快速创建一个高效的 AI 支持平台,为工作和学习赋能。
动手试试,创造属于你的 AI 知识库吧!
通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强
Best
Wenhao (楠博万)