【问题标题】:Rendering very large HTML file in-browser?在浏览器中呈现非常大的 HTML 文件?
【发布时间】:2025-12-16 16:05:02
【问题描述】:

我正在尝试通过一个有趣的项目来学习 Python——Facebook 消息分析器。我从 Facebook 下载了我的数据,其中包括一组 html 文件。其中之一 - messages.htm - 包含我的所有消息。我的目标是获取这个 html 文件并将其解析出来以输出有趣的数据,例如最常用的单词、消息数量等。

问题是我的messages.htm 文件是270MB。我可以在 vim 中很好地检查它,但是文件中有一些有趣的模式,我想将 html 代码与它在浏览器上的实际呈现方式进行比较,这样我就可以将代码与视觉效果进行比较,并更好地了解什么是继续。但是当我尝试在 Firefox 中打开这个文件时,FF 崩溃了。我可以在 Chrome 中打开它,但它只是开始加载所有消息,而且大约 10 分钟后,无论滚动条变得多么小,它甚至都没有完全加载一个消息线程。所以这是不可行的。

这样一个又大又长的 HTML 文件是否可以完全渲染?

【问题讨论】:

  • 270MB 的 源代码 可能会在 RAM 中产生数 GB 的数据结构。浏览器甚至不应该尝试。
  • 我明白了 - 这应该阻止我解析这个吗?我确实问过一个关于它的较早问题,并且认为迭代解析是可能的 (*.com/questions/31225193/…) 我猜我有大约 800k-1M 条消息,所以这是很多数据可以使用但肯定一个可行的整体任务?
  • 您是否可以为单个消息过滤文件并将它们写入数据库或 JSON 存储。这可能会使大量数据更方便..
  • @MiBrock,我敢肯定——这是我第一次涉足 Python,所以我还没有一套方法。完全愿意接受任何类似的建议,非常感谢任何指向正确方向的人!
  • 仅解析它以提取数据可行的,只要您不使用常规的内存中 HTML 解析器(270 MB 的文本文件本身并不是很好交易)。也许您可以使用 XML 拉解析器 如果 HTML 不是无效的。

标签: html browser


【解决方案1】:

您可以使用lynx 这是一个基于文本的浏览器来查看一个大的html 文件。我有一个 139M 的 html 文件,我可以使用 lynx 轻松查看它。 lynx 将整个文档分成页面,并且能够非常快速地加载任何给定页面。它还支持超链接,因此在 html 文档(这是我的用例)中导航就像一个魅力。

【讨论】: