从零开始打造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 (楠博万)

相关推荐
yzx99101319 分钟前
opencv图像基础学习
人工智能·opencv·计算机视觉
是Dream呀1 小时前
深度学习在文本情感分析中的应用
人工智能·深度学习
游客5201 小时前
图像处理|闭运算
图像处理·人工智能·python·opencv·计算机视觉
API_technology3 小时前
api开发及运用小红书笔记详情api如何获取笔记详情信息
大数据·开发语言·数据库·数据仓库·笔记·爬虫
道友老李5 小时前
【机器学习】Kaggle实战Rossmann商店销售预测(项目背景、数据介绍/加载/合并、特征工程、构建模型、模型预测)
人工智能·机器学习
Seeklike7 小时前
初识NLP
人工智能·自然语言处理
GISer_Jing7 小时前
LLM(大语言模型)支撑下的传统工作流转型发展为AI工作流
人工智能·语言模型·自然语言处理
2401_898200608 小时前
2023 Google开发者大会:你了解机器学习的新动向吗?
人工智能·机器学习
Dong雨9 小时前
快速入门:如何注册并使用GPT
人工智能·chatgpt
从零开始学习人工智能9 小时前
安装指南:LLaMA Factory、AutoGPTQ 和 vllm
人工智能·python·深度学习·算法