【问题标题】:Is it possible to read in and parse a .docx file that is linked to on a website without downloading the file (in Java, Python, or another language)?是否可以在不下载文件(Java、Python 或其他语言)的情况下读取和解析链接到网站上的 .docx 文件?
【发布时间】:2014-06-19 15:27:40
【问题描述】:

我想编写一个程序来解析在线 .docx 文件以构建 XML 文档。我知道(或者至少我认为我知道)浏览器需要插件才能在浏览器中查看 .docx,但我对插件或工作原理并不熟悉。在 Notepad++ 中查看 .docx 文件后,我似乎很清楚我将无法解析二进制数据。有没有办法在任何语言或库的能力范围内为我的目的模拟 .docx 文件的打开(编辑:也就是说,不下载文件并将其保存到我的硬盘驱动器)?

我的问题更多是关于在不下载的情况下打开文件,而不是关于文件的实际解析,因为我已经研究了用于在 Java 中解析文档的 Apache POI API。

【问题讨论】:

  • 您需要获取文件字节才能解析它。从远程位置获取称为下载。
  • 我应该说没有实际下载文件并保存到我的硬盘驱动器。
  • 简而言之,不。但是,您可以将其作为临时文件下载(我知道 Java 有 File.createTempFile() 并且这样不会消耗额外的资源。
  • 或者保存在内存中。
  • @MattShank 您应该编辑您的问题以使其更清晰

标签: java python xml regex docx


【解决方案1】:

让我试着说清楚。

如果您正在查看它,那么您已经下载了它。您正在“下载”此网页,以便您的浏览器呈现它。您正在“下载”一个指向文档的链接,该链接告诉您有一个文档。除非您下载,否则您无法查看该文档。

是的,你必须下载它。

下载文件只是从远程服务器获取它。

当然,您不必将其写入到您的硬盘上。你可以下载下来存到内存中,然后从内存中处理。

一旦你打开一个连接,你会得到一个InputStream 对象来读取字节。您可以将其传递到 Apache POI 库中以读取文件。

【讨论】:

  • 谢谢。这个答案让我意识到这个问题是多么愚蠢。我的问题源于我没有考虑 Web 服务器和浏览器如何交互。
  • @MattShank 没关系,很高兴我能帮上忙 :)
【解决方案2】:

虽然上面的答案在技术上是正确的,但我相信你问的是所谓的屏幕抓取,你可以开始here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 2015-03-17
    相关资源
    最近更新 更多