首页 后端开发 Python教程 使用 DevTools 和 HAR 文件抓取数据

使用 DevTools 和 HAR 文件抓取数据

Dec 31, 2024 am 08:16 AM

数据抓取对于任何想要从网站中提取有意义信息的人来说都是一个游戏规则改变者。借助 Chrome DevTools 和 HAR 文件等工具,您可以轻松发现隐藏的 API 并捕获有价值的数据流。在这篇文章中,我将分享如何使用这些工具从杂货配送平台 Blinkit 中抓取产品数据,并向您展示如何做到这一点。

为什么我为我的杂货应用程序选择数据抓取

在构建杂货配送应用程序时,我面临着一个重大挑战——缺乏真实数据。从头开始创建我自己的数据集将非常耗时,并且不会为项目提供任何真正的优势。我需要一个更快、更实用的解决方案,这让我产生了抓取数据的想法。通过从 Blinkit 提取产品详细信息,我可以获得准确的真实数据来测试和改进我的应用程序,而不会浪费资源。

网络爬取数据的常用方法

  1. 手动复制粘贴

    • 简单但乏味。适合提取少量数据。
  2. 网页抓取工具

    • Scrapy、BeautifulSoup 或 Puppeteer 等工具可以自动执行从网站提取数据的过程。
    • 最适合大规模结构化数据提取。
  3. API 集成

    • 一些网站提供公共 API 来直接合法地访问其数据。
    • 需要了解 API 端点和身份验证流程。
  4. 浏览器开发工具

    • 直接在浏览器中检查网络请求、捕获 HAR 文件或分析页面元素。
    • 非常适合识别隐藏的 API 或 JSON 数据。
  5. 无头浏览器

    • 使用 Puppeteer 或 Selenium 等无头浏览器库来自动导航和抓取。
    • 非常适合需要 JavaScript 渲染或交互的网站。
  6. 解析 HAR 文件

    • HAR 文件捕获网页的所有网络活动。可以解析它们以提取 API、JSON 响应或其他数据。
    • 对于具有动态内容或隐藏数据的网站很有用。
  7. HTML 解析

    • 使用 BeautifulSoup (Python) 或 Cheerio (Node.js) 等库解析 HTML 内容来提取数据。
    • 对于简单的静态网站有效。
  8. 从 PDF 或图像中提取数据

    • PyPDF2、Tesseract (OCR) 或 Adob​​e API 等工具可在无法在线获取数据时帮助从文件中提取文本。
  9. 自动脚本

    • 用 Python、Node.js 或类似语言编写的自定义脚本,用于抓取、解析和存储数据。
    • 提供对抓取过程的完全控制。
  10. 第三方 API

    • 使用 DataMiner、Octoparse 或 Scrapy Cloud 等服务来为您处理抓取任务。
    • 节省时间,但根据服务计划可能会有限制。

我选择了HAR文件解析

什么是 .har 文件?

Scraping Data with DevTools and HAR Files

HAR(HTTP Archive)文件是一种 JSON 格式的存档文件,用于记录网页的网络活动。它包含有关每个 HTTP 请求和响应的详细信息,包括标头、查询参数、有效负载和计时。 HAR 文件通常用于调试、性能分析,在本例中还用于数据抓取。

HAR 文件的结构

HAR 文件由多个部分组成,主要部分是:

Scraping Data with DevTools and HAR Files

  1. 日志

    • HAR 文件的根对象,包含有关记录的会话和捕获的条目的元数据。
  2. 条目

    • 对象数组,其中每个条目代表一个单独的 HTTP 请求及其相应的响应。

主要属性包括:

  • request:有关请求的详细信息,例如 URL、标头、方法和查询参数。
  • 响应:有关响应的信息,包括状态代码、标头和内容。
  • 计时:请求-响应周期(例如 DNS、连接、等待、接收)所花费时间的细分。
  1. 页面

    • 包含有关会话期间加载的网页的数据,例如页面标题、加载时间和页面打开的时间戳。
  2. 创作者

    • 有关用于生成 HAR 文件的工具或浏览器的元数据,包括其名称和版本。

为什么我选择HAR文件解析

HAR 文件提供网页上所有网络活动的全面快照。这使得它们非常适合识别隐藏的 API、捕获 JSON 有效负载以及提取抓取所需的确切数据。结构化 JSON 格式还简化了使用 Python 或 JavaScript 库等工具的解析过程。

计划:使用 HAR 文件解析抓取数据

Scraping Data with DevTools and HAR Files

为了有效地从 Blinkit 中提取产品数据,我遵循了一个结构化计划:

  1. 浏览和捕获网络活动
    • 打开 Blinkit 网站并启动 Chrome DevTools。
    • 浏览各种产品页面以捕获“网络”选项卡中所有必要的 API 调用。

Scraping Data with DevTools and HAR Files

  1. 导出 HAR 文件

    • 将记录的网络活动保存为 HAR 文件以供离线分析。
  2. 解析 HAR 文件

    • 使用Python解析HAR文件并提取相关数据。
    • 创建了三个关键函数来简化流程:
  • 功能一:过滤相关回复
    • 提取与端点 /listing?catId=* 匹配的所有响应以获取产品相关数据。

Scraping Data with DevTools and HAR Files

  • 功能2:清理和提取数据
    • 处理过滤后的响应以提取关键字段,如 ID、名称、类别等。

Scraping Data with DevTools and HAR Files

  • 功能三:将图片保存到本地
    • 识别出数据中所有商品图片URL,并将其下载到本地文件以供参考。

Scraping Data with DevTools and HAR Files

  1. 执行和结果
    • 整个过程,包括一些尝试和错误,大约需要 30-40 分钟。
    • 成功抓取了大约 600 个产品的数据,包括名称、类别和图像。

Scraping Data with DevTools and HAR Files

这种方法使我能够快速有效地收集我的杂货配送应用程序所需的数据。

结论

数据抓取如果高效完成,可以节省大量时间和精力,特别是当您需要真实数据来测试或构建应用程序时。通过利用 Chrome DevTools 和 HAR 文件,我能够快速从 Blinkit 中提取有价值的产品数据,而无需手动创建数据集。该过程虽然需要一些尝试和错误,但很简单,并且为开发人员面临的常见问题提供了实用的解决方案。通过这种方法,我能够在一小时内收集 600 个产品详细信息,帮助我推进我的杂货配送应用程序项目。

然而,数据抓取应该始终以符合道德和负责任的方式进行。在抓取之前,请务必确保遵守网站的服务条款和法律准则。如果做得好,抓取可以成为收​​集数据和改进项目的强大工具。

以上是使用 DevTools 和 HAR 文件抓取数据的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何解决Linux终端中查看Python版本时遇到的权限问题? 如何解决Linux终端中查看Python版本时遇到的权限问题? Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到? 如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到? Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? 在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? Apr 01, 2025 pm 11:15 PM

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Apr 01, 2025 pm 10:51 PM

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

在Linux终端中使用python --version命令时如何解决权限问题? 在Linux终端中使用python --version命令时如何解决权限问题? Apr 02, 2025 am 06:36 AM

Linux终端中使用python...

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础? 如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础? Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

如何绕过Investing.com的反爬虫机制获取新闻数据? 如何绕过Investing.com的反爬虫机制获取新闻数据? Apr 02, 2025 am 07:03 AM

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...

See all articles