gpt4 book ai didi

java - 从 403MB(是的,我有这个权利)html 文件中有效提取特定表

转载 作者:行者123 更新时间:2023-12-01 10:49:01 25 4
gpt4 key购买 nike

问题:

  • 从 HTML 文件(HTML 大小接近半千兆字节)中提取所有表格的有效方法是什么?

我目前适用于 < 100MB 的文件的方法是:

    Document doc = Jsoup.parse(full_html);
Elements html_tables = doc.select("table");

JSoup.parse 对于 400MB 的文件来说执行得非常糟糕。我可以编写自己的 HTML 标记器来快速提取表格吗?有什么建议吗?

背景:

  • 我正在从 SEC 文件中嵌入的更广泛的 HTML 文件中提取一个 HTML 表,该表通过将其文本与正则表达式匹配来识别。

  • 目前:我使用 JSoup 来解析 HTML。然后我遍历表格寻找符合我的标准的候选人。

  • 问题是,从 2014 年左右开始,美国证券交易委员会 (SEC) 的一些文件变得非常大。示例(403 MB 文件!):

    -rw-r--r-- 1 mgunn 员工 403M 0000065984-14-000065.txt

  • 调用 Document doc = Jsoup.parse(full_html)(我当前方法的一部分)需要几分钟时间和/或耗尽内存。

  • 我需要在一个又一个的文件上执行此操作(其中几个> 100MB),因此我需要编写/使用相当强大且高效的东西。

最佳答案

正如原帖评论中提到的,您不应该尝试使用基于 DOM 的解析器加载如此庞大的文档,因为这会占用大量内存。相反,您应该寻找成熟的替代方案。这里的关键字是SAX,它代表“Simple API for XML Parsing”。有几种 Java 替代方案:

  • tagsoup - 尽力使困惑/不完整的 html 变得有意义
  • nekohtml - 全能的 html 解析器。

处理与基于 DOM 的解析有些不同,但易于管理。

关于java - 从 403MB(是的,我有这个权利)html 文件中有效提取特定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com