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

news2024/10/6 4:02:07

敢于大胆设想,才能在 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

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

延伸阅读

  • 如何用 ChatGPT 的 Advanced Data Analysis 帮你采集数据?

  • 如何不编程,采集网站评论信息?(视频教程)

  • 如何用 Python 爬数据?(一)网页抓取

  • 如何用 ChatGPT 帮你自动分析数据?

  • 如何用 ChatGPT 一句话生成 Web 应用?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1573709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秋招刷题4(动态规划)

1.购物单 import java.util.Scanner;public class Main {public static void main(String[] args){Scanner sc new Scanner(System.in);int N sc.nextInt();int m sc.nextInt();Goods[] goods new Goods[m];for(int i 0; i < m; i){goods[i] new Goods();}for(int i …

Dev c++ C语言实现第一个 dll 动态链接库 创建与调用

代码来源&#xff1a; 极简版 C 动态链接库&#xff08;DLL&#xff09;创建与调用 - 知乎 (zhihu.com) 现在移植到Devc 里 首先创建DLL 项目&#xff0c;如果不创建&#xff0c;直接粘贴代码编译不通过&#xff0c;应该是项目里指定了链接类型。 如图&#xff1a; 然后选择…

【数据结构(二)】顺序表与ArrayList

❣博主主页: 33的博客❣ ▶文章专栏分类:数据结构◀ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你学更多数据结构知识 目录 1.前言2.定义IList接口3.MyArraylist实现接口3.1定义成员变量与构造方法3.2添加元素3.3…

Jackson 2.x 系列【14】特征配置篇之 MapperFeature

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 前言2. 通用2.1 USE_ANNOTATIONS2.2 USE_GETTERS_AS_SETTERS2.3 PROPAGATE_TR…

c 语言 指数搜索(Exponential Search)

该搜索算法的名称可能会产生误导&#xff0c;因为它的工作时间为 O(Log n)。该名称来自于它搜索元素的方式。 给定一个已排序的数组和要 搜索的元素 x&#xff0c;找到 x 在数组中的位置。 输入&#xff1a;arr[] {10, 20, 40, 45, 55} x 45 输出&#xff1a;在索…

多语言婚恋交友APP开发的关键成功因素

随着移动互联网的快速发展&#xff0c;多语言婚恋交友APP的需求和发展逐渐成为了一个备受关注的话题。在全球范围内&#xff0c;人们希望通过移动应用来寻找爱情、建立关系和拓展社交圈子&#xff0c;因此开发一款具有全球影响力的多语言婚恋交友APP成为了许多开发者的目标。针…

支持编写任何类型的爬虫:基于 Golang 的优雅爬虫框架 | 开源日报 No.216

gocolly/colly Stars: 21.5k License: Apache-2.0 colly 是 Golang 的优雅爬虫和爬虫框架。 该项目提供了一个清晰的接口&#xff0c;用于编写任何类型的爬虫/抓取器/蜘蛛。Colly 可以轻松从网站中提取结构化数据&#xff0c;可用于数据挖掘、数据处理或存档等各种应用。 其主…

使用免费开源AI平台:OCR识别抖音短视频及网络图片中文字内容(可本地部署)

在数字化时代&#xff0c;信息的快速获取和处理变得尤为重要。网络图片文字识别技术作为一项重要的人工智能应用&#xff0c;已经在多个领域展现出其独特的价值。本文将基于思通数科AI开放平台提供的网络图片文字识别服务&#xff0c;探讨该技术的应用场景、特色优势以及如何有…

超声波清洗机哪家强?超声波清洗机排行榜!最强超声波清洗机推荐

眼镜作为日常生活中不可或缺的用品&#xff0c;对于很多人来说是必备的。然而&#xff0c;随着使用时间的增长&#xff0c;眼镜表面往往会沾染灰尘、污垢等&#xff0c;这不仅影响了镜片的透光性&#xff0c;也可能影响到使用者的视力和舒适度。因此&#xff0c;清洁眼镜成了一…

PowerShell正则表达式匹配文件内容并输出到屏幕(或保存到文件)

代码&#xff1a; foreach ($line in Get-Content -path .\test.sql) { if ($line -match bdw_\w*.\w*) {write-output $matches[0]}}思路&#xff1a; 读取文件并遍历 foreach ($line in Get-Content -path .\test.sql) 正则匹配 if ($line -match ‘bdw_\w*.\w*’) 这个匹配…

Spring拓展点之SmartLifecycle如何感知容器启动和关闭

Spring为我们提供了拓展点感知容器的启动与关闭&#xff0c;从而使我们可以在容器启动或者关闭之时进行定制的操作。Spring提供了Lifecycle上层接口&#xff0c;这个接口只有两个方法start和stop两个方法&#xff0c;但是这个接口并不是直接提供给开发者做拓展点&#xff0c;而…

Spring的事务详解

Spring的事务详解 一&#xff0c;什么是Spring事务 Spring 事务是 Spring 框架提供的一种对事务进行管理的机制。在使用 Spring 事务时&#xff0c;可以通过注解或编程方式将需要进行事务管理的方法和代码块标记为事务性操作&#xff0c;当这些操作被执行时&#xff0c;Spring…

吴恩达:AI 智能体工作流

热门文章推荐&#xff1a; &#xff08;1&#xff09;《为什么很多人工作 3 年 却只有 1 年经验&#xff1f;》&#xff08;2&#xff09;《一文掌握大模型提示词技巧&#xff1a;从战略到战术巧》&#xff08;3&#xff09;《AI 时代&#xff0c;程序员的出路在何方&#xff1…

人工智能上手 Pytorch

人工智能上手 Pytorch 1、人工智能框架历史走向 2015年&#xff0c; caffe&#xff0c;优势配置简单&#xff0c;缺点安装麻烦&#xff0c;且不更新维护 2016年&#xff0c;tensorflow 1.x&#xff0c;定义太严格&#xff0c;很复杂。开发成本高。简单的任务&#xff0c;也很…

360勒索病毒:变种360袭击了您的计算机?

引言&#xff1a; 随着科技的发展&#xff0c;网络安全问题变得日益突出&#xff0c;勒索病毒成为了当前网络威胁的一大主要形式之一。其中&#xff0c;360勒索病毒是近期备受关注的一种恶意软件。本文将介绍360勒索病毒的特点以及如何有效地应对此类威胁。如果受感染的数据确…

从三个维度看,你的企业是否需要引入精益管理咨询?

在快速变化的商业环境中&#xff0c;企业不断寻求提升自身运营效率和竞争力的方法。其中&#xff0c;精益管理作为一种追求卓越、消除浪费的管理理念&#xff0c;被越来越多的企业所认可。但是&#xff0c;如何判断自己的组织是否需要进行精益企业管理咨询呢&#xff1f;天行健…

I2C驱动实验:读取AP3216C设备中寄存器的数据

一. 简介 经过前面几篇文章的学习&#xff0c;已经完成了I2C驱动框架&#xff0c;字符设备驱动框架&#xff0c;编写了 读写 I2C设备中寄存器的数据的代码&#xff0c;文章如下&#xff1a; I2C驱动实验&#xff1a;实现读/写I2C设备寄存器的函数-CSDN博客 本文在此基础上&a…

Java | Leetcode Java题解之第14题最长公共前缀

题目&#xff1a; 题解&#xff1a; class Solution {public String longestCommonPrefix(String[] strs) {if (strs null || strs.length 0) {return "";}int minLength Integer.MAX_VALUE;for (String str : strs) {minLength Math.min(minLength, str.length…

加入酷开会员 酷开系统带你一起开启看电视的美好时光!

看电视对孩子和大人来说&#xff0c;都是有好处的。英国的《星期日泰晤士报》曾刊登报道&#xff1a;“看电视可以让小孩增长见闻&#xff0c;学习各种良好的社交和学习技巧&#xff0c;从而为他们今后的学习打下良好的基础。”而对于成年人来说&#xff0c;看电视也是一种娱乐…

Flutter开发进阶之错误信息

Flutter开发进阶之错误信息 在Flutter开发中错误信息通常是由Exception和Error表示&#xff0c;Error表示严重且不可恢复的错误&#xff0c;一般会导致程序直接终止&#xff0c;而Exception可以被显式抛出&#xff0c;一般为代码逻辑错误&#xff0c;根据Flutter的解释说Excep…