如何不编程用 ChatGPT 爬取网站数据?

敢于大胆设想,才能在 AI 时代提出好问题。

fdc12bf5008afb36be285b0500bdc3aa.jpeg

需求

很多小伙伴,都需要为研究获取数据。从网上爬取数据,是其中关键一环。以往,这都需要编程来实现。

可最近,一位星友在知识星球提问:

cd73564a8c5c2b5bfae233599bd75533.jpeg

这里涉及到一些个人隐私,我就打了码。他的意思很清楚:

第一,他不想编程;

第二,他要获取数据。

在以前,这基本上算是空想。但现在可就不一样了。我觉得敢于设想,是很必要的。这是个好问题

我之前在知识星球里就为你写过一篇相关的文章,叫做《如何用 ChatGPT 的 Advanced Data Analysis 帮你采集数据》。

b5f362837acb4b3b6ece3fe3ff7cd0a3.jpeg

ChatGPT 的 Advanced Data Analysis 模式(也叫做 Code Interpreter)可以自动编程并执行程序,曾经是数据分析的不二之选。好在现在我们有了更多选择。那篇文章对应的是一个活动网站的爬取(见下图),感兴趣的朋友 可以去看看

c80672671da2ea6537febf2e2fb50c74.jpeg

只不过,当时这篇文章里,咱们处理的方式,还少不了跟技术打交道。例如你需要获取一些文本的路径信息。

时隔数月,我在想,现在是不是有更简单直接的方法来处理数据呢?

工具

我就到 OpenAI 的 GPTs Store 查看一番。

0431fea748e0e46be3b7fb3916561a2d.jpeg

这里汇集了许多人创造的各种 GPT 应用。你能想到的很多目标,都可以直接利用别人定制的 GPT 来完成,没必要重复发明轮子。咱们今天直奔主题,搜索 "Scraper"。

c6268284a9ba820683dddb7f8f1f66d3.jpeg

搜索结果中,我选择了排名第一的工具。你可以看到它的对话数量已经超过 1 万次,这是相当厉害的数据了。

c3615a21d729132dc0da89347a27e346.jpeg

从右上角的数据统计可以看出,Scraper GPT 的评分是 3.9 分,有 430 人参与评分。页面上还列出了一些默认问题,可以帮助你了解它的工作方式。我选择了第一个问题:「我如何从网站获取数据?」

295369575c3741235aad0070ea2a6b63.jpeg

根据回答,我们可以利用 Scraper GPT 获取三类不同的数据:文本、链接和图像。只需告诉 Scraper GPT 网站地址就可以抓取内容,非常简单。

目标

我们需要一个目标网站来进行抓取。本文我选择了我所在的天津师范大学管理学院数据科学系的 师资介绍页面。

6c941c42fe569d9701b9c81f01826b4c.jpeg

往下翻,你还能看见我,哈哈。

24e7a34fc2c8e35e41906cd612f59882.jpeg

目标网站准备好了,你把链接拷贝下来,就可以开始尝试了。

文本

把页面网址复制粘贴到Scraper GPT对话框,我首先请求它帮我抓取网页中的文本

9c490ced9b6fb95d186f2c757c018a9c.jpeg

很快,Scraper GPT 就把页面上所有文本都提取出来了,包括导航栏、页眉页脚等位置的文字,以及页面上每位老师的姓名、职称、联系方式等信息。

13fe3c4b4f834ebe16321ea20884e3c7.jpeg

最后 Scraper GPT 还表示,如果需要更进一步的信息,随时可以告诉它。真是服务态度一流。

243309b17cc5b08071630dfcc159010a.jpeg

怎么样?是不是不用编程,直接搞定文本获取?

图像

接下来咱们来试试获取网页中的全部图像。我把相同的网址发送过去,请求它抓取其中的图像。

c154bfe33ec9aeafb644832c7b07c428.jpeg

这次它一共找到了 12 张图片,但在对话界面里都无法正常显示

aab1d81e54ef31b19b2c55da316bf9ed.jpeg

起初我觉得很失望,但马上意识到它已经成功获取了图片链接。我把链接复制到了 Visual Studio Code 里面,你可以看看它抓取到的内容。

fe5d7fc6fa2b030cbfbc457102a439ed.jpeg

链接有了,如何正常显示呢?简单,咱们把所有内容复制到 Markdown 编辑器 Typora。你可以看到,所有老师的照片都依次展现出来了,很完美。

085ba9d8fd90b17d28c6ae1e6b9ee892.gif

链接

最后我要求Scraper GPT提取页面中的所有链接

e6d77a9328edb872de630c9365829629.jpeg

从结果可以看出,Scraper GPT 找到了导航栏、学院简介等页面链接,以及三位老师的个人主页链接。

0cb551a3c49ef35422d150e26c45e06a.jpeg

我觉得这个结果并不完整。不过仔细一看 Scraper GPT 自己已经表示,这「只是链接的一部分」。如果我需要某个特定区域的链接,尽管告诉它。

那我就不客气了,指明它需要给我显示所有「教师」部分的链接。

4d45ce0e3fad7506baf9caa3f153ad04.jpeg

于是全系所有 9 个老师的页面链接就都出现了。

8ada9bcdfb475391a3adce8a87d13a61.jpeg

我把抓取到的链接内容复制到编辑器中,你可以清楚地看到每个链接。

e4428e8bd1196480402728da9483c6e3.jpeg

当然了,你一般不会满足于只获得某个网页上的内容,而是希望「顺藤摸瓜」。没问题,链接在手,你可以进一步要求Scraper GPT访问这些链接,抓取二级页面的内容。

深入

这里我以 翟羽佳老师的个人主页举例。

e84038bdf1920e84009d5f2b835e4aef.jpeg

进入页面后,你可以看到翟老师的个人介绍、学术成果、研究课题等丰富信息。我用提示词让 Scraper GPT 把页面文本提取出来。

15365160f08cf8d51ed2ca6df11fb38d.jpeg

Scraper GPT 把翟老师的职称、联系方式、研究领域等内容都抓取到了。

3640b4705985ef71c3f95111222d0d38.jpeg

更进一步还抓取了翟老师的教育背景、工作经历、研究生指导等。

c8d8e601ee585c98255fd7f6f37160c5.jpeg

在翟老师的个人主页上,这些信息位于默认页面底部。

deb98c067329c987b06778a1771de5ab.jpeg

但对于那些需要点击展开才能看到的内容,比如学术成果、研究课题、讲授课程等,Scraper GPT 则没能捕捉到具体内容。

26b47096165c77a58657335de109fb86.jpeg

我要求 Scraper GPT 抓取学术成果这个部分。

02932b6411811feb4859df35eb0bf052.jpeg

结果 Scraper GPT 表示,无可奈何。

764bf842cd6b6c2cc6a7fe1b16830333.jpeg

翻译过来就是:

之前提供的内容没有具体说明翟羽佳老师的「学术成果」部分的详细信息。看来这一部分的具体细节没有包含在抓取的文本中。这可能是由于网站内容的布局或动态加载方式造成的,单次抓取可能无法准确捕捉某些特定部分的详细信息。

如果您需要这一部分的详细信息,我建议您直接访问该网页。如果还有其他我可以协助您的地方,请告诉我!

我自己手动查找到翟老师学术成果第一条的 xpath 链接。

48517ea86b992a27d067b8057809f7ab.jpeg

然后我把这个 xpath 地址扔给了 Scraper GPT 。但是它还是告诉我,这些它处理不了。

ff8f476b5ab966d20d346cc501371e71.jpeg

翻译过来,就是:

我无法直接执行或解释 XPath 查询,也无法像浏览器或支持 JavaScript 的专用网页抓取工具那样与网页进行交互。我的能力集中在处理页面由服务器提供的静态内容中的文本、链接或图像,而不是在客户端脚本运行之前。

如果有 JavaScript 生成的内容或信息是动态加载的,我可能无法直接通过简单的抓取访问到它。对于动态加载的内容或需要交互或特定查询 (如 XPath) 的部分,我建议使用专门设计用于动态网页抓取的工具,如 Selenium 或 Puppeteer,它们可以像浏览器一样与网页的 DOM 进行交互。

但是,如果您需要的信息可以通过网页的静态 HTML 访问,请随时提供网址并描述您感兴趣的信息,我会尽力帮助您!

这样看来,如果你希望抓取动态网页内容,恐怕目前 Scraper GPT 无能为力,或许你还真的无法摆脱编程的必要步骤。

小结

通过咱们的演示你可以看出,这款名叫 Scraper 的 GPT 工具非常方便好用。文本、图片、链接这些信息类型,Scrapper GPT都可以根据你提供的链接轻松获取。因为有了链接,你还可以进一步抓取二级页面的信息。重要的是,整个过程完全不需要编程

当然Scraper GPT也有局限性,就是无法准确处理动态网页的内容。对于这些高阶操作,你目前可能还是需要借助 Selenium 等工具,通过编程来实现。但是我相信,随着 AI 能力的进一步提升,以及应用集成度的改进,这些强烈的用户需求,应该在不久后就有免费便捷的工具可以满足了。生活在这样一个人工智能快速进展的时代,真的很容易激动啊。

点赞 +「在看」,转发给你身边有需要的朋友。收不到推送?那是因为你只订阅,却没有加星标

欢迎订阅我的小报童付费专栏,每季度更新不少于10篇文章。订阅一整年价格优惠。

ea8670bd67e2f126db064af30631e063.jpeg

如果有问题咨询,或者希望加入社群和热爱钻研的小伙伴们一起讨论,订阅知识星球吧。不仅包括小报童的推送内容,还可以自由发帖与提问。之前已经积累下的帖子和问答,就有数百篇。足够你好好翻一阵子。知识星球支持72小时内无条件退款,所以你可以放心尝试。

01486d3d878aa086374978881cd836f6.jpeg

若文中部分链接可能无法正常显示与跳转,可能是因为微信公众平台的外链限制。如需访问,请点击文末「阅读原文」链接,查看链接齐备的版本。 

延伸阅读

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值