AI个人学习
和实操指南
讯飞绘镜

GPT-Crawler:自动爬取网站内容生成知识库文件

综合介绍

GPT-Crawler 是由 BuilderIO 团队开发的一个开源工具,托管在 GitHub 上。它通过输入一个或多个网站 URL,爬取页面内容,生成结构化的知识文件(output.json),用于创建自定义 GPT 或 AI 助手。用户可以配置爬取规则,比如指定起始 URL 和内容选择器,工具会自动提取文本并整理成文件。这个工具简单易用,支持本地运行、Docker 容器部署和 API 调用,适合开发者快速从网站内容构建专属 AI 助手。截至目前,它在技术社区中受到关注,因其高效性和开源特性广受欢迎。

GPT Crawler:从网站抓取知识文件,创建定制GPTs-1


 

功能列表

  • 从一个或多个 URL 爬取网站内容,生成 output.json 文件。
  • 支持自定义爬取规则,包括起始 URL、链接匹配模式和 CSS 选择器。
  • 能处理动态网页,使用无头浏览器抓取客户端渲染内容。
  • 提供 API 接口,通过 POST 请求启动爬取任务。
  • 支持设置最大页面数(maxPagesToCrawl)、文件大小(maxFileSize)和令牌数(maxTokens)。
  • 生成的文件可直接上传到 OpenAI,用于创建自定义 GPT 或 AI 助手。
  • 支持 Docker 容器运行,方便在不同环境中部署。
  • 可排除特定资源类型(如图片、视频等),优化爬取效率。

 

使用帮助

安装与运行(本地方式)

GPT-Crawler 基于 Node.js 开发,需要安装相关环境才能运行。以下是详细步骤:

  1. 检查环境
    确保电脑已安装 Node.js(版本 16 或更高)和 npm。运行以下命令确认:
node -v
npm -v

如果没有,请从 Node.js 官网 下载安装。

  1. 克隆项目
    在终端输入命令,将项目下载到本地:
git clone https://github.com/BuilderIO/gpt-crawler.git
  1. 进入目录
    下载完成后,进入项目文件夹:
cd gpt-crawler
  1. 安装依赖
    运行以下命令安装所需软件包:
npm install
  1. 配置爬虫
    打开 config.ts 文件,修改爬取参数。例如,爬取 Builder.io 文档:
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:起始爬取地址。
  • match:链接匹配模式,支持通配符。
  • selector:提取内容的 CSS 选择器。
  • maxPagesToCrawl:最大爬取页面数。
  • outputFileName:输出文件名。
  1. 运行爬虫
    配置完成后,运行以下命令启动爬取:
npm start

完成后,output.json 文件会生成在项目根目录。

替代运行方式

使用 Docker 容器

  1. 确保已安装 Docker(从 Docker 官网 下载)。
  2. 进入 containerapp 文件夹,编辑 config.ts
  3. 运行以下命令构建并启动容器:
docker build -t gpt-crawler .
docker run -v $(pwd)/data:/app/data gpt-crawler
  1. 输出文件会生成在 data 文件夹中。

使用 API 运行

  1. 安装依赖后,启动 API 服务:
npm run start:server
  1. 服务默认运行在 http://localhost:3000
  2. 发送 POST 请求到 /crawl,示例:
curl -X POST http://localhost:3000/crawl -H "Content-Type: application/json" -d '{"url":"https://example.com","match":"https://example.com/**","selector":"body","maxPagesToCrawl":10,"outputFileName":"output.json"}'
  1. 可访问 /api-docs 查看 API 文档(基于 Swagger)。

上传到 OpenAI

  1. 创建自定义 GPT
  • 打开 ChatGPT。
  • 点击左下角姓名,选择“My GPTs”。
  • 点击“Create a GPT” > “Configure” > “Knowledge”。
  • 上传 output.json 文件。
  • 如果文件过大,可在 config.ts 设置 maxFileSize 或 maxTokens 拆分文件。
  1. 创建自定义助手
  • 打开 OpenAI 平台。
  • 点击“+ Create” > “Upload”。
  • 上传 output.json 文件。

功能操作详解

  • 爬取内容
    指定 url 和 selector 后,工具会提取页面文本。比如,.docs-builder-container 只抓取该区域内容。
  • 生成文件
    输出文件格式为:
[{"title": "页面标题", "url": "https://example.com/page", "html": "提取的文本"}, ...]
  • 优化输出
    使用 resourceExclusions 排除无关资源(如 pngjpg),减少文件体积。

注意事项

  • 需要 OpenAI 付费账户才能创建自定义 GPT。
  • 动态网页爬取依赖无头浏览器,确保依赖完整。
  • 文件过大时,可调整配置拆分上传。

 

应用场景

  1. 技术支持助手
    爬取产品文档网站,生成 AI 助手,帮助用户解答技术问题。
  2. 内容整理工具
    从博客或新闻网站抓取文章,制作知识库或问答助手。
  3. 教育培训助手
    爬取在线课程页面,生成学习助手,提供课程相关解答。

 

QA

  1. 可以爬取多个网站吗?
    可以。在 config.ts 中设置多个 URL 和匹配规则即可。
  2. 文件太大无法上传怎么办?
    设置 maxFileSize 或 maxTokens,将文件拆分为多个小文件。
  3. 支持中文网站吗?
    支持。只要网站内容可被无头浏览器解析,就能正常爬取。
未经允许不得转载:首席AI分享圈 » GPT-Crawler:自动爬取网站内容生成知识库文件
zh_CN简体中文