从零开始打造AI知识库:使用爬虫自动化采集网页内容的完整教程

言简意赅的讲解crawler爬虫解决的痛点

童鞋们在实现私有化大语言模型实现精准参数归纳与程序执行之后还是不满足AI相关的能力。在 AI 驱动的知识管理时代,快速搭建属于自己的知识库已成为很多开发者和团队的核心需求。本文将带你一步步创建一个基于网页爬取的知识库,并将其直接应用到 GPT 模型中。这种方法适用于个人博客、企业文档甚至特定网站的内容爬取与整理。


为什么需要爬虫知识库?

AI 模型如 GPT 的强大能力依赖于高质量的上下文知识库。通过爬虫,我们可以:

  • 自动化采集分散在网页上的信息。
  • 定制化选择和过滤相关内容。
  • 快速构建一个可用的语义搜索和对话式 AI 系统。

环境搭建与依赖安装

以下是快速搭建爬虫系统并获取知识库的完整步骤:

1. 启动容器环境

使用 Docker 来创建一个隔离的环境,确保爬虫工具运行的依赖无冲突。

bash 复制代码
docker run -it --name gpt-crawler-container node:lts bash
  • --name :命名容器为 gpt-crawler-container
  • node:lts:使用 Node.js LTS 版本镜像。
  • bash:进入交互式 Shell。

2. 安装依赖

在容器中执行以下命令,安装必要的工具和依赖:

2.1 更新系统并安装基础工具
bash 复制代码
apt-get update && apt-get install -y git curl gnupg
  • apt-get update:更新软件包列表。
  • git:用于克隆代码仓库。
  • curlgnupg:下载和验证相关工具的依赖。
2.2 安装 Playwright 依赖
bash 复制代码
npx playwright install && npx playwright install-deps
  • Playwright 是一个强大的浏览器自动化工具,支持多种浏览器的爬取任务。
2.3 克隆爬虫项目并安装依赖
bash 复制代码
cd /home && git clone --depth=1 https://github.com/builderio/gpt-crawler && cd gpt-crawler
npm install
  • git clone:从官方仓库获取爬虫代码。
  • npm install:安装爬虫项目的所有依赖。

3. 配置爬虫

爬虫的核心是配置文件 config.ts,它定义了爬取目标、内容选择器和其他关键参数。

示例配置说明
typescript 复制代码
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 中的所有可配置项:

  1. url:爬虫起始页面 URL。如果提供站点地图 (sitemap),则优先下载站点地图内容。
  2. match:用于匹配 URL 的规则,仅爬取符合规则的页面。
  3. selector:提取内容的 CSS 选择器,决定爬取页面中的哪部分内容。
  4. maxPagesToCrawl:最大爬取页面数。
  5. outputFileName:输出文件的名称,爬取结果保存为 JSON 格式。
  6. resourceExclusions:可选,排除某些资源类型(如图片、视频、样式文件等),加快爬取速度。
  7. maxFileSize:可选,限制文件的最大大小(MB)。
  8. maxTokens:可选,限制输出文件的最大 token 数,用于控制 GPT 模型输入的大小。

示例配置:采集文浩(楠搏万)博客文章

以下是一个具体示例,爬取指定博客中的内容,我展示的示例为爬取我自己的文浩(楠搏万)的博客:

typescript 复制代码
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. 运行爬虫

执行以下命令开始爬取:

bash 复制代码
npm start

成功运行后,结果会存储在配置文件中指定的 output.json 中。


5. 知识库直接用于 GPT

爬取完成的 output.json 文件是直接可用的 GPT 知识库:

  1. 打开 GPT 的知识库管理界面。
  2. 上传 output.json
  3. 知识库即刻生效,无需额外转换或调整。

常见问题与优化

  1. 如何优化爬取速度?

    • 使用 resourceExclusions 排除不必要的资源(如图片、CSS 文件)。
    • 通过 maxPagesToCrawl 限制页面数。
  2. 如何确保抓取的内容干净整洁?

    • 精确定义 selector
    • 可在后续处理时清理无关内容。
  3. 配置 maxTokens 的意义?

    • 避免输出文件过大,确保符合 GPT 模型的输入限制。

总结

通过简单的步骤,我们成功完成了从爬虫搭建到 AI 知识库生成的全过程。无论是技术博客、企业文档还是行业资讯,都可以用这种方式快速创建一个高效的 AI 支持平台,为工作和学习赋能。

动手试试,创造属于你的 AI 知识库吧!


通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强

Best

Wenhao (楠博万)

相关推荐
芯盾时代19 分钟前
数据出境的安全合规思考
大数据·人工智能·安全·网络安全·信息与通信
Go Dgg29 分钟前
Go语言实现豆瓣电影Top250爬虫
开发语言·爬虫·golang
Sylvan Ding37 分钟前
PyTorch Lightning实战 - 训练 MNIST 数据集
人工智能·pytorch·python·lightning
大白技术控39 分钟前
浙江大学 deepseek 公开课 第三季 第3期 - 陈喜群 教授 (附PPT下载) by 突破信息差
人工智能·互联网·deepseek·deepseek公开课·浙大deepseek公开课课件·deepseek公开课ppt·人工智能大模型
Silence4Allen43 分钟前
大模型微调指南之 LLaMA-Factory 篇:一键启动LLaMA系列模型高效微调
人工智能·大模型·微调·llama-factory
江鸟199844 分钟前
AI日报 · 2025年05月11日|传闻 OpenAI 考虑推出 ChatGPT “永久”订阅模式
人工智能·gpt·ai·chatgpt·github
weifont1 小时前
Ai大模型训练从零到1第一节(共81节)
人工智能
kyle~1 小时前
C++匿名函数
开发语言·c++·人工智能
水银嘻嘻1 小时前
web 自动化之 Unittest 应用:报告&装饰器&断言
前端·python·自动化
知来者逆1 小时前
AI 在模仿历史语言方面面临挑战:大型语言模型在生成历史风格文本时的困境与研究进展
人工智能·深度学习·语言模型·自然语言处理·chatgpt