今天我将给大家分享一个非常强大的小工具——GPT爬虫。它能够自动批量采集指定网站或者网址当中的页面数据,并且会以json格式输出内容,这些数据可以直接导入到GPTs的知识库中,作为问答系统的内容来源。通过这个方法,我们可以轻松地实践数据采集和整理,非常适合用来搭建知识类和问答类的GPTs。而且重点是,这个办法无论你是否有技术基础,都能轻松掌握。
让我们先来演示一下效果。我找了大疆的官网,关于这款Air3无人机的产品主页。使用我在开头介绍的这个小工具,我已经将Air3所有的站点信息,页面数据都采集下来了。
它展示的是这样的一个数据结构:包含页面的标题、页面的链接以及页面当中的网页内容。我们可以看到,目前总共采集了四个界面,分别是常见问题、下载、视频、技术参数,对应的是这几个界面。
我在这里把技术参数页面作为例子,展示采集下来的内容,它是一个json格式。然后,把这个html页面所有的文本内容都采集下来。例如,技术参数、飞行器、起飞重量720克、折叠长207毫米、宽100.05毫米,这与实际数据是对应得上的。
接下来,我们打开ChatGPT的界面,我这边已经创建了一个大疆无人机Air3的客服,也就是我的GPTs。后续我会用刚刚采集下来的这个Air3的json格式的页面文档,结合GPTS的知识库,把它打造成为一款Air3的客服系统。让我们来看一下这个GPTs的基本设置:名字、描述,包括我Prompt说明也非常简单,就是要求它用知识库内容来回答用户的问题。如果知识库找不到答案,那么就回答“很抱歉,我暂时无法回答这个问题”。
在知识库这里,就是把刚才我们所看到的json文件上传上去了。为了测试严谨一点,我们把联网功能关闭,免得大家误以为是通过联网去查询我们后面所要提的问题。现在我们问他:“Air3的最长飞行时间是多久?”答案已经出来了,最长飞行时间是46分钟。我们来对比一下这个参数里面的答案,最长飞行时间是46分钟,并且在无风情况下,下面有一些备注提示,在这个答案当中他也是把这个备注提示给我们回答下来的。
我们再问第二个问题:“Air3的最大续航里程是多远?”答案显示是32公里,我们也来确定一下,最大续航里程是32公里。最后我们再问一个问题,问他的这个电池容量是多大,答案显示是4241毫安,同样的话,我们回到这个技术参数界面,电池这一栏,容量是4241毫安。我们通过这三个测试,答案都是正确的。
这就是关于用今天我要讲的小工具,然后去采集相应网页的数据,之后再结合GPTs的知识库所打造出来的一个智能问答系统。接下来,其实我们可以用这套解决方案打造出蛮多GPTs的,不管是打造这种客服系统或者打造问答系统,再比如说像文档类的、知识类的等等,用这套方案他都是能解决的,所以他的可拓展性还是蛮强的。
现在,我就给大家实际演示一下这个工具要怎么样安装、怎么样去使用,然后来获得这样一个我们所想要的网站或者网址的数据。我用到的这个工具是GitHub上面的一个开源项目,名字叫GPT-Crawler,GPT爬虫。
我们可以简单过一下它的基本介绍,它可以抓取网站上的内容,生成对应的知识库文件,不管是从一个URL还是从多个URL,我们都可以去进行批量抓取,然后把这个内容导入到GPTs里面进行一个相应的调用。
它的安装跟配置都非常非常的简单,不管你会不会技术,用这个方法那基本上也是一键部署。
首先,它是要求我们在电脑上安装Node.js,并且版本号是大于等于16。除此以外,我们还要安装一个Git指令,因为后续我们可以通过这个Git指令去获取这个项目的源码。只要安装这两个就好了。如果你不会安装Node.js以及Git怎么办?其实这里教大家一个非常简单的办法,就是我们打开ChatGPT,问ChatGPT基于你的电脑环境应该如何安装Node.js以及如何去安装Git指令。
回到我们的主题,安装成功后我们要进行一些配置。我们进入根目录里面有一个config.ts
的文件,你随意用一个编辑器打开它,主要里面是有这五个参数是我们需要去注意的。我先给大家讲一下这每个参数所代表的意思。
第一个是URL
,比如说你要从某一个链接当中去采集数据,那么你可以把这个网址复制一下,然后给它粘贴到这个URL
的地址。
第二个是match
,这个参数代表的是匹配与你这个网址相关的URL链接,他会把这个地址下的所有页面都给我们下载下来。
第三个是selector
,如果你只想采集页面中的某一部分内容,可以在这里填写相应的class类名。
第四个是maxDepth
,代表的是最大抓取数量,你可以根据需求设定。最后一个是output
,它是我们输出json格式文件的名字,你可以自己命名。
配置好这些参数后,我们就可以开始使用GPT-Crawler进行数据采集了。打开终端,输入npm start
,然后回车执行,爬虫就会开始工作。它会从你设定的URL地址开始,根据你配置的参数去网站上抓取数据。最终,它会生成一个json格式的文件,你可以将这个文件导入到GPTs的知识库中,就可以实现一个智能问答系统。
现在,我要给大家展示的是,如果你遇到了一个问题,GPTs的知识库中找不到答案怎么办?不要担心,我们可以利用GPTs的actions功能去自由获取任意网站上的数据。这样一来,我们既有知识库中的离线数据,又能利用actions功能获取
在线数据,让ChatGPT既能回答知识库中有的问题,又能回答知识库中没有的问题。这极大地增强了GPTs的能力和实用性。
举个例子,如果我们问GPTs一个知识库中没有的问题,比如“Air3的价格是多少?”通常情况下,它会回答说“很抱歉,我暂时无法找到这个答案”,这是因为在我采集下来的数据里面,并不包含Air3的售价信息。但是,如果我们利用GPTs的actions功能,它就可以自由获取这个数据,并给出答案。
当我让GPTs通过actions插件去查找这个价格时,它立刻告诉我们Air3有四个版本,每个版本不同的售价。它通过actions功能,成功地获取了第三方平台的精准数据,验证了其实用性。
这个功能不仅适用于商品价格查询,还可以用于获取比如股票价格、食物热量等实时数据。通过调用第三方的API,我们可以获取到准确的信息,从而提供更加丰富和精准的服务。
对于想要获取第三方数据的详细实现方法,掌握了这个技能之后,你的GPTs能力将得到极大的加强。不管是在线数据还是离线数据,构建知识库都变得轻而易举。
在结尾我要强调的是,GPT-Crawler这个工具的安装、配置和使用都非常简单。只要按照上述步骤完成配置和运行,你就可以轻松地从网站上采集所需的数据,并且将其转化为GPTs能够使用的知识库。这无疑为数据采集和知识库建设提供了极大的便利。
最后,我希望通过今天的分享,能够帮助到每一个需要采集网站数据的朋友。如果你有任何疑问或者在使用过程中遇到了问题,欢迎随时联系我,我非常乐意帮助大家解决问题。