admin 管理员组文章数量: 887017
文章目录
- 什么是隐藏的网络数据?
- 如何爬取隐藏的网络数据?
- 设置
- 使用 chatgpt 爬取隐藏的网络数据
- ChatGPT 字符限制
- 常见问题解答
- 什么是隐藏的网页数据?
- ChatGPT 能够抓取隐藏数据吗?
- AI 能够帮助进行网页抓取吗?
- 我可以使用 BeautifulSoup 抓取隐藏的网页数据吗?
- 使用 ChatGPT 抓取隐藏数据总结
网页上的数据可以以不同的形式存在,包括 HTML 和 JavaScript。当数据位于 JavaScript 中时,通常会出现在
script
标签或 JavaScript 变量中。这种形式的数据通常被称为隐藏的网络数据。
要爬取隐藏的数据,我们有两个选择:
- 使用无头浏览器将其渲染为 HTML,从而使其显示出来。
- 直接使用文本解析技术找到它。
在本文中,我们将介绍第二种选择以及如何使用 ChatGPT 来爬取隐藏的数据。我们将从快速概述这种技术开始,然后探索一些实际示例。让我们开始吧!
- 什么是隐藏的网络数据?
- 如何爬取隐藏的网络数据?
- 设置
- 使用 ChatGPT 爬取隐藏的网络数据
- ChatGPT 字符限制
- 使用 ScrapFly 爬取隐藏数据
- 常见问题解答
- 使用 ChatGPT 爬取隐藏数据总结
SCRAPFLY 学院
学习更多网络爬虫知识 ☝️
什么是隐藏的网络数据?
动态网页使用 JavaScript 函数来管理 HTML 的状态。这些函数将实际的 HTML 与数据逻辑隔离开来。这意味着网站可能具有空的 HTML 结构,并且数据会在页面加载时由 JavaScript 渲染到 HTML 中。
由于像 BeautifulSoup 这样的常规网络爬虫工具不支持 JavaScript,因此这些数据不会出现在 HTML 中,因此无法通过 HTML 解析来获取。
例如,在这个模拟产品页面上,我们可以在浏览器中看到这些评论数据:
此外,如果我们在浏览器中检查页面,我们可以看到这些数据存在于 HTML 中:
<div id="reviews" data-page="1">
<div class="review review-red-potion-1">
<span>2023-02-10</span>
<p>The berry flavor is intense and delicious. Great for keeping me focused during my gaming sessions.</p>
</div>
<div class="review review-red-potion-2">
<span>2023-03-20</span>
<p>Not only does it look cool, but it tastes great and gives a good energy boost!</p>
</div>
<div class="review review-red-potion-3">..</div>
<div class="review review-red-potion-4">..</div>
</div>
然而,如果我们运行一个简单的 BeautifulSoup 爬虫代码,我们会发现 HTML 中没有评论数据:
from bs4 import BeautifulSoup
import requests
r = requests.get('https://web-scraping.dev/product/4?variant=one')
soup = BeautifulSoup(r.content, 'html.parser')
print (soup)
"""
<h3 class="box-title mt-5">Reviews</h3>
<div data-page="1" id="reviews">
</div>
</div>
</div>
</div>
</div>
</div>
<input name="csrf-token" type="hidden" value="secret-csrf-token-123"/>
<script id="reviews-data" type="application/json">[{"date": "2023-02-10", "id": "red-potion-1", "rating": 5, "text": "The berry flavor is intense and delicious. Great for keeping me focused during my gaming sessions."}..]</script>
<script id="reviews-template" type="nunjucks">
"""
存储数据的 div
标签现在是空的,数据似乎被隐藏起来了。
如果我们仔细观察,我们会发现这些隐藏的数据现在以 JSON 格式出现在 <script id="reviews-data">
标签中。
这些数据应该已经被渲染到 HTML 中。但是由于我们使用的网络爬虫不支持 JavaScript,这个过程无法进行。
因此,总结一下,我们可以看到 HTML 网络爬虫无法直接爬取隐藏的网络数据。让我们看看我们该如何做!
如何爬取隐藏的网络数据?
我们有几种方法可以爬取隐藏的网络数据:
我们可以使用无头浏览器,如 Selenium、Playwright 和 Puppeteer。
这些无头浏览器可以模拟和控制真实的网络浏览器。我们可以使用它们将隐藏的数据渲染到 HTML DOM 中,然后像往常一样使用 BeautifulSoup 进行解析。
然而,这种方法可以将隐藏的数据渲染到 HTML 中,但代价是很大的。无头浏览器消耗大量的时间和资源,因为我们需要运行一个完整的网络浏览器,并等待加载完成。
或者,我们可以直接在网页中查找数据,使用 正则表达式 和 JSON 查找算法。
这种方法允许无浏览器的爬虫直接爬取隐藏的数据,但我们需要提供明确的指示去找到它。这就是 ChatGPT 的用武之地。
我们可以使用 ChatGPT 来编写查找隐藏数据的程序。它的工作原理是将 HTML 代码传递给聊天提示,ChatGPT 将从页面数据中识别和提取隐藏数据。
我们之前已经介绍过了使用 ChatGPT 查找网页元素的类似方法,但现在我们将用它来处理非 HTML 实体。让我们看看如何让 ChatGPT 爬取隐藏的数据。
设置
在我们开始使用 chatgpt 查找隐藏的网络数据之前,让我们先看一下我们的目标网站。
在这个例子中,我们将使用 web-scraping.dev/product/4 页面:
要将此页面传递给 ChatGPT 的聊天提示,我们首先需要复制 HTML,可以直接从浏览器保存(CTRL+s
),或使用 Python 进行爬取:
import requests
response = requests.get("https://web-scraping.dev/product/4")
print(response.text)
🙋 如果你有一个非常长的 HTML 文件,你可以将 HTML 代码拆分成较小的块,并将它们作为 chatgpt 的聊天提示,因为 chatgpt 有一个字符限制。
使用 chatgpt 爬取隐藏的网络数据
现在我们已经得到了 HTML 代码,让我们使用 chatgpt 查找隐藏的网络数据。
我们将代码粘贴到聊天提示中,并询问隐藏数据:
ChatGPT 将扫描 HTML 文档,并为我们找到隐藏的数据元素:
我们可以看到它很好地找到了包含评论数据的脚本。接下来,我们可以要求它清理和格式化结果:
你能清理评论数据并将其格式化为 JSON 吗?
ChatGPT 输出的数据ChatGPT 足够智能,可以找到并呈现这些数据。我们可以要求它为我们生成解析代码,通过进一步的提示请求,例如 "
ChatGPT 字符限制
虽然我们可以使用 chatgpt 爬取隐藏的网络数据,但是复杂的网站和较长的 HTML 文件无法适应聊天提示的限制。
例如,这个 Glassdoor 页面 上有一些隐藏的数据:
Glassdoor 的整个页面数据集位于 NEXT_DATA 脚本元素中
不幸的是,Glassdoor 的巨大 HTML 页面无法适应聊天提示,以便我们利用 chatgpt。
为此,新的 chatgpt 代码解释器功能非常有用,它允许直接上传文件。我们在 使用代码解释器创建 chatgpt 网络爬虫 文章中介绍了这种方法,更多细节可以参考该文章,基本上,我们会直接附加 HTML 文件,而不是将其粘贴到聊天提示中。
如何爬取 Glassdoor(2024 更新)
关于使用 Python 爬取 Glassdoor 的更多信息,请参阅我们的完整入门教程,该教程使用隐藏的网络数据爬取来爬取工作、公司和评论数据。
常见问题解答
让我们通过查看一些与使用 ChatGPT 抓取隐藏网页数据相关的常见问题来总结本文:
什么是隐藏的网页数据?
隐藏的网页数据是在脚本标签或 JavaScript 变量中找到的数据。这种类型的数据通常是隐藏的,因为它需要使用 JavaScript 渲染,而普通的网页抓取工具(如 BeautifulSoup)不支持。
ChatGPT 能够抓取隐藏数据吗?
是的,可以通过将 HTML 页面传递给聊天提示来实现。ChatGPT 将解析 HTML 并在脚本标签或 JavaScript 变量中找到隐藏的网页数据。
AI 能够帮助进行网页抓取吗?
是的,有多种方式可以实现。您可以使用 ChatGPT 代码解释器功能 创建一个 AI 网站抓取工具,它可以在聊天中运行代码。您还可以创建一个 chatgpt 抓取工具来解析 HTML 并提取诸如 XPath 和 CSS 选择器之类的选择器。
我可以使用 BeautifulSoup 抓取隐藏的网页数据吗?
可以,但由于 BeautifulSoup 不支持 JavaScript,您将无法在 HTML 中找到隐藏的数据。您需要使用正则表达式或 JSON 查找算法从 JavaScript 脚本标签中解析数据。
使用 ChatGPT 抓取隐藏数据总结
总之,隐藏的网页数据是保存在脚本标签或 JavaScript 变量中的数据,通过在浏览器中运行 JavaScript 渲染为 HTML。我们可以通过多种方式抓取隐藏的网页数据,包括使用无头浏览器、从脚本标签中解析 JSON 和 ChatGPT。
我们已经看到使用 chatgpt 可以找到并抓取隐藏数据。然而,在使用聊天提示时需要小心。清晰的提示说明和简短的 HTML 代码是获得良好 ChatGPT 网页抓取结果的关键。
版权声明:本文标题:用 ChatGPT 网页爬虫发现隐藏的网络数据 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729014534h1307042.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论