【问题标题】:How to save a jsoup document as text file如何将 jsoup 文档保存为文本文件
【发布时间】:2017-08-22 11:11:19
【问题描述】:

我正在尝试将网页上的所有可读单词保存到一个文本文档中,同时忽略 html 标记。 使用JSoup解析网页上的所有单词,我唯一猜测如何将真实单词与代码分开是通过元素。

是否可以将jsoup文档的多个元素转换成文本文件?

即:

        Elements titles = doc.select("title");
        Elements paragraphs = doc.select("p");
        Elements links = doc.select("a[href]"); 
        Elements smallText = doc.select("a");

当前将解析保存为文档:

 Document doc = Jsoup.connect("https:// (enter a url)").get();

【问题讨论】:

  • 只需创建一个文件并写入它???
  • 抱歉,我是 java 新手,我仍在努力解决问题。你能告诉我一个示例代码或参考资料,可以教我如何做到这一点吗?
  • 这里是了解 Java 新旧 IO API 的最佳场所docs.oracle.com/javase/tutorial/essential/io
  • 谢谢。我一定会通读的。

标签: java text jsoup document


【解决方案1】:

简单的方法

Document doc = Jsoup.connect("https:// (enter a url)").get();
        BufferedWriter  writer = null;
        try
        {
            writer = new BufferedWriter( new FileWriter("d://test.txt"));
            writer.write(doc.toString());

        }
        catch ( IOException e)
        {
        }

【讨论】:

  • 谢谢!我对此进行了测试,并且可以正常工作。我如何只将某些元素保存到该文件编写器?示例现在在主帖中。
  • 所以你想把所有的东西一一保存在文件里?
  • 我正在尝试将网页上的所有可读单词保存到一个文本文档中,同时忽略 html 标记。这就是元素的用途,只选择可读的单词。
  • 您可以创建一个`元素列表`和iterate in the file
【解决方案2】:

添加答案,因为我无法在上面发表评论。

将上述代码中的writer.write(doc.toString()); 替换为writer.write(doc.select("html").text());。

它会给你页面上的文字。

除了doc.select("**html**").text() 中的"html",可以使用其他标签来提取这些标签中包含的文本。

编辑:你也可以使用writer.write(doc.body().text());

【讨论】:

  • 这会用所有的 html 标记来解析它;它不排除封闭的标签 .. 我怎样才能只提取真实的单词?
  • 使用doc.select("html").toString() 会以字符串形式返回网页元素,这里的标签不会被排除。我建议"html" 标签,因为它是 html 文档(wep 页面)中的根标签。如果doc.select("html").text() 不适合你(它应该)尝试doc.body().text()
  • 每当我最后使用 .text() 时,它只会保存一个空白的 .txt 文件
  • 您是否尝试打印输出,可能在写入文本文件时出现错误。
【解决方案3】:

在文本中写入writer.write(doc.text()); 后,您需要在下一行写入writer.close();,这将解决问题。

【讨论】:

  • 请将此建议作为对另一个答案的编辑,而不是将评论添加为新答案。
猜你喜欢
  • 2014-09-02
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
相关资源
最近更新 更多