【问题标题】:How to save a Jsoup Document to an HTML file?如何将 Jsoup 文档保存到 HTML 文件?
【发布时间】:2014-09-02 00:31:54
【问题描述】:

我已使用此方法将网页检索到 org.jsoup.nodes.Document 对象中:

myDoc = Jsoup.connect(myURL).ignoreContentType(true).get();

我应该如何将此对象写入 HTML 文件? myDoc.html()myDoc.text()myDoc.toString() 方法不会输出文档的所有元素。

javascript 元素中的某些信息在解析时可能会丢失。例如,Instagram 媒体页面源中的“时间戳”。

【问题讨论】:

  • 调用myDoc.html()时缺少哪些元素?
  • 某些元素在使用 Jsoup 获取时可能会被移除或解析不同。使用白名单来修复它!
  • @cy3er 我添加了一个示例。在这种情况下,alkis 的解决方案有效。

标签: java jsoup document


【解决方案1】:

使用doc.outerHtml()

import org.apache.commons.io.FileUtils;

public void downloadPage() throws Exception {
        final Response response = Jsoup.connect("http://www.example.net").execute();
        final Document doc = response.parse();

        final File f = new File("filename.html");
        FileUtils.writeStringToFile(f, doc.outerHtml(), StandardCharsets.UTF_8);
    }

不要忘记捕捉异常。添加依赖或下载 Apache commons-io 库,以方便快捷地以 UTF-8 格式保存文件。

【讨论】:

    【解决方案2】:

    有元素被忽略,一定是Jsoup试图规范化。

    为了在不进行任何形式的规范化的情况下获得服务器的准确输出,请使用它。

    Connection.Response html = Jsoup.connect("PUT_URL_HERE").execute();
    System.out.println(html.body());
    

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多