当前位置: 首页 > article >正文

从零开始打造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:用于克隆代码仓库。
  • curlgnupg:下载和验证相关工具的依赖。

容器更新系统和基础工具

2.2 安装 Playwright 依赖
npx playwright install && npx playwright install-deps
  • Playwright 是一个强大的浏览器自动化工具,支持多种浏览器的爬取任务。

容器安装Playwriight

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 中的所有可配置项:

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

采集 CSDN 博客文章


4. 运行爬虫

执行以下命令开始爬取:

npm start

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

运行爬虫


5. 知识库直接用于 GPT

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

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

知识库生成结果

知识库上传GPT


常见问题与优化

  1. 如何优化爬取速度?

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

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

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

总结

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

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


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

Best
Wenhao (楠博万)


http://www.kler.cn/a/506609.html

相关文章:

  • SpringSecurity详解
  • 计算机组成原理(计算机系统3)--实验二:MIPS64乘法实现实验
  • 静态综合路由实验
  • python接口自动化的csv文件怎么创建和读取
  • 非安全函数
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论和实操解析
  • centos 7 Mysql服务
  • Day09-后端Web实战——部门管理开发Logback日志技术
  • 2025.1.15——六、SQL结构【❤sqlmap❤】
  • 旋转编码器驱动-标准库和HAL库
  • Windows图形界面(GUI)-QT-C/C++ - Qt键盘与鼠标事件处理详解
  • 装饰器模式详解(附代码案例和源码分析)
  • phaserjs+typescript游戏开发之camera实现
  • SQL正则表达式用法大全以及如何利用正则表达式处理复杂数据
  • DCU异构程序--矩阵乘
  • mysql zabbix监控方法
  • JAVA:责任链模式(Chain of Responsibility Pattern)的技术指南
  • 基于springboot的rmi远程调用
  • API调用过程中遇到错误的解决方案
  • 清除前端缓存的方式
  • OpenCV相机标定与3D重建(54)解决透视 n 点问题(Perspective-n-Point, PnP)函数solvePnP()的使用
  • python助力WRF自动化运行
  • JavaEE之常见的锁策略
  • Linux 音视频入门到实战专栏(音频篇)基于alsa api的音频播放/录制流程
  • 2024年细讲前端工程化 万字总结!!
  • D3.js及实例应用