java - 避免与 JSoup 进行无空格连接

标签 java dom screen-scraping jsoup

假设我有一个这样的 div:

<div>
This is a paragraph
written by someone
on the internet.
</div>

问题是,当 JSoup 解析它时,它把它全部放在一行上,这样当我调用 text() 时,它会这样读:

This is a paragraphwritten by someoneon the internet.

现在,我意识到这并不是一个真正的 JSoup 问题,因为实际的 html 不包含空格。但是,有没有什么方法可以使用 JSoup (也许是一些覆盖,或者可能是我没有见过的选项),以便在解析时会在行之间添加空格?我想这一定是可能的(因为我可以检查 Chrome 中的元素并取消选择自动换行,它会得到我想要的),但我不确定 JSoup 可以做到这一点。

有什么想法吗?

最佳答案

您能提供完整的代码示例吗?您使用什么版本的 jsoup?

在当前版本(1.6.1)中,此代码:

Document doc = Jsoup.parse("<div>\n" +
    "This is a paragraph\n" +
    "written by someone\n" +
    "on the internet.\n" +
    "</div>");
System.out.println(doc.text());

产品:

这是网上某人写的一段话。

即,\n(和 \r\n 等)被转换为空格形式的文本。

如果我可以复制的话,很乐意修复或改进它:)

关于java - 避免与 JSoup 进行无空格连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130968/

相关文章:

c# - 无法抓取 .HTM 文件

python - 抓取需要使用 Python 登录的站点

python - 使用来自同一 URL 的多个 POST 数据进行抓取

java - 读取 Android NFC IsoDep 标签时出现连接错误

javascript - 如何获取所选文件夹的完整路径

javascript - 使用 ajax 填写已选择的参数的表单

javascript - 如何确定最后一个 DOMSubtreeModified 被触发了?

java - ZK:如何拦截/使用父菜单栏中的事件?

java - 如何验证序数日期?

java - 如何在每个 arraylist 对象旁边制作一个假复选框,并使用标记 "x"将其切换为完成,就像 [x] 一样?