GPT Crawler:轻松抓取网站内容,打造专属AI助手

你是否曾想过,如何快速将网站上的信息整理成AI能够理解的内容?比如,把你的项目文档、博客文章,甚至某个网站的知识,变成一个智能助手来回答问题。今天,我要和你聊聊一个实用工具——GPT Crawler。它能帮你从网站抓取内容,生成知识文件,最终创建出属于你自己的AI助手。接下来,我会带你一步步了解它是什么、能做什么,以及怎么用它。

什么是GPT Crawler?

简单来说,GPT Crawler是一个开源工具,专门用来从网站上抓取内容,并把这些内容整理成适合OpenAI平台使用的知识文件。无论是从一个URL还是多个URL开始,它都能帮你提取文本信息,生成一个JSON格式的文件。这个文件可以直接上传到OpenAI,变成一个自定义的GPT或助手。

它有什么特别之处?

你可能会问,为什么要用GPT Crawler,而不是手动复制粘贴内容?这里有几个理由:

  • 效率高:它能自动抓取大量页面,省去你手动整理的麻烦。
  • 灵活性强:你可以设置规则,只抓取你想要的内容。
  • 用途广泛:无论是个人项目还是团队协作,它都能派上用场。
  • 简单上手:不需要高深的编程知识,几步就能跑起来。

GPT Crawler能做什么?

让我们具体看看它的功能。你可以用它来:

  1. 抓取网站内容:输入一个URL,它会自动提取页面上的文字。
  2. 筛选信息:通过配置选择器,抓取特定区域,比如文章正文或标题。
  3. 生成知识文件:把抓取的内容整理成JSON文件,直接给OpenAI用。
  4. 支持多种运行方式:可以在本地运行,也可以用Docker容器或API服务运行。

一个真实的例子

假设你想做一个关于Builder.io的智能助手。Builder.io是一个网站建设工具,它的文档在https://www.builder.io/c/docs/developers。用GPT Crawler抓取这些文档内容后,你可以生成一个知识文件,上传到OpenAI,创建一个能回答“如何在网站中集成Builder.io?”的助手。这个过程简单又实用。

如何开始使用GPT Crawler?

别担心,我会一步步带你上手。我们先从最常见的本地运行开始讲起,然后再聊聊其他方式。

在本地运行GPT Crawler

第一步:克隆仓库

你需要一台安装了Node.js(版本>=16)的电脑,然后在命令行输入:

git clone https://github.com/builderio/gpt-crawler

这会把GPT Crawler的代码下载到你的电脑上。

第二步:安装依赖

进入项目文件夹,运行:

cd gpt-crawler
npm i

这一步会安装工具运行需要的软件包,耐心等几分钟就行。

第三步:配置抓取规则

找到项目里的config.ts文件,打开它。这里是你告诉工具“抓什么、怎么抓”的地方。你需要修改几个关键选项:

  • url:开始抓取的网页地址。
  • match:要抓取的URL模式,比如只抓文档页面。
  • selector:页面上要提取内容的CSS选择器。

比如,想抓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 起始抓取地址 https://www.example.com
match 匹配哪些页面继续抓取 https://www.example.com/**
selector 提取页面哪个部分的文字 .content
maxPagesToCrawl 最多抓取多少页 50
outputFileName 输出文件名 output.json
maxFileSize 输出文件最大大小(MB,可选) 10
maxTokens 输出文件最大token数(可选) 10000

这些选项可以根据你的需求调整。比如只想抓10页,就把maxPagesToCrawl改成10。

第四步:运行抓取程序

配置好后,在命令行输入:

npm start

工具会开始工作,抓取完成后,你会在项目根目录看到一个output.json文件。这就是你的知识文件。

其他运行方式

除了本地运行,GPT Crawler还支持两种方式,适合不同场景。

用Docker容器运行

如果你熟悉Docker,可以用容器运行。进入containerapp目录,修改那里的config.ts文件,然后按照说明启动容器。完成后,知识文件会生成在data文件夹里。

作为API服务运行

想通过网络调用GPT Crawler?它还能跑成API服务。

启动API服务

在项目根目录运行:

npm run start:server

服务默认跑在3000端口。你可以通过POST请求/crawl端点,发送配置JSON来触发抓取任务。想看API详情,可以访问/api-docs

把抓取的内容上传到OpenAI

抓到内容后,下一步是把它变成AI助手。生成的output.json文件可以上传到OpenAI,创建两种类型的助手。

创建自定义GPT

这种方式适合需要图形界面的场景,比如分享给别人用。

步骤

  1. 打开https://chat.openai.com/
  2. 点击左下角的用户名,选择“My GPTs”。
  3. 点击“Create a GPT”。
  4. 选“Configure”。
  5. 在“Knowledge”部分,点击“Upload a file”,上传output.json
  6. 如果文件太大上传失败,可以试试拆成小文件,或者在config.ts里调小maxFileSizemaxTokens

注意:目前可能需要付费的ChatGPT计划才能用这个功能。

创建自定义助手

这种方式适合用API集成到你的产品里。

步骤

  1. 访问https://platform.openai.com/assistants
  2. 点击“+ Create”。
  3. 选择“upload”,上传output.json

常见问题(FAQ)

你可能还有些疑问,我来一一解答。

GPT Crawler能抓哪些网站?

只要是公开访问的网站都可以。你通过urlmatch指定要抓的页面就行。

怎么找CSS选择器?

打开浏览器,按F12进入开发者工具,右键检查你想抓的内容,找到它的CSS选择器。比如,文章正文可能是.article#content

抓到的内容会怎么处理?

工具会根据你的选择器提取文字,整理成JSON格式,生成知识文件。

文件太大上传不了怎么办?

两种办法:

  • config.ts里设置maxFileSizemaxTokens,控制文件大小。
  • 把文件手动拆成几个小文件,分开上传。

能抓需要登录的页面吗?

目前不行,GPT Crawler只能抓公开页面。

如何为GPT Crawler贡献代码?

如果你有好点子想改进这个工具,欢迎提交PR!项目是开源的,大家一起完善它。

总结

GPT Crawler是一个简单又强大的工具,能帮你从网站抓取内容,生成知识文件,再创建自定义AI助手。不管是整理项目文档,还是为用户提供智能问答,它都能派上用场。试试看吧,也许你很快就能做出一个专属的智能助手!