GPT Crawler:轻松抓取网站内容,打造专属AI助手
你是否曾想过,如何快速将网站上的信息整理成AI能够理解的内容?比如,把你的项目文档、博客文章,甚至某个网站的知识,变成一个智能助手来回答问题。今天,我要和你聊聊一个实用工具——GPT Crawler。它能帮你从网站抓取内容,生成知识文件,最终创建出属于你自己的AI助手。接下来,我会带你一步步了解它是什么、能做什么,以及怎么用它。
什么是GPT Crawler?
简单来说,GPT Crawler是一个开源工具,专门用来从网站上抓取内容,并把这些内容整理成适合OpenAI平台使用的知识文件。无论是从一个URL还是多个URL开始,它都能帮你提取文本信息,生成一个JSON格式的文件。这个文件可以直接上传到OpenAI,变成一个自定义的GPT或助手。
它有什么特别之处?
你可能会问,为什么要用GPT Crawler,而不是手动复制粘贴内容?这里有几个理由:
-
效率高:它能自动抓取大量页面,省去你手动整理的麻烦。 -
灵活性强:你可以设置规则,只抓取你想要的内容。 -
用途广泛:无论是个人项目还是团队协作,它都能派上用场。 -
简单上手:不需要高深的编程知识,几步就能跑起来。
GPT Crawler能做什么?
让我们具体看看它的功能。你可以用它来:
-
抓取网站内容:输入一个URL,它会自动提取页面上的文字。 -
筛选信息:通过配置选择器,抓取特定区域,比如文章正文或标题。 -
生成知识文件:把抓取的内容整理成JSON文件,直接给OpenAI用。 -
支持多种运行方式:可以在本地运行,也可以用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
这种方式适合需要图形界面的场景,比如分享给别人用。
步骤:
-
打开https://chat.openai.com/。 -
点击左下角的用户名,选择“My GPTs”。 -
点击“Create a GPT”。 -
选“Configure”。 -
在“Knowledge”部分,点击“Upload a file”,上传 output.json
。 -
如果文件太大上传失败,可以试试拆成小文件,或者在 config.ts
里调小maxFileSize
或maxTokens
。
注意:目前可能需要付费的ChatGPT计划才能用这个功能。
创建自定义助手
这种方式适合用API集成到你的产品里。
步骤:
-
访问https://platform.openai.com/assistants。 -
点击“+ Create”。 -
选择“upload”,上传 output.json
。
常见问题(FAQ)
你可能还有些疑问,我来一一解答。
GPT Crawler能抓哪些网站?
只要是公开访问的网站都可以。你通过url
和match
指定要抓的页面就行。
怎么找CSS选择器?
打开浏览器,按F12进入开发者工具,右键检查你想抓的内容,找到它的CSS选择器。比如,文章正文可能是.article
或#content
。
抓到的内容会怎么处理?
工具会根据你的选择器提取文字,整理成JSON格式,生成知识文件。
文件太大上传不了怎么办?
两种办法:
-
在 config.ts
里设置maxFileSize
或maxTokens
,控制文件大小。 -
把文件手动拆成几个小文件,分开上传。
能抓需要登录的页面吗?
目前不行,GPT Crawler只能抓公开页面。
如何为GPT Crawler贡献代码?
如果你有好点子想改进这个工具,欢迎提交PR!项目是开源的,大家一起完善它。
总结
GPT Crawler是一个简单又强大的工具,能帮你从网站抓取内容,生成知识文件,再创建自定义AI助手。不管是整理项目文档,还是为用户提供智能问答,它都能派上用场。试试看吧,也许你很快就能做出一个专属的智能助手!