【发布时间】:2015-07-15 19:50:13
【问题描述】:
我正在使用 JSoup,它是纯 Java 中的 HTML 解析器库,用于从 Internet 上提取和解析纯 HTML 页面(嗯,JS 很少)。到目前为止,如果我要抓取的数据附加到一个非常冗长的 HTML 元素(如 <a href="...."> 或 <span class="myclass myotherclass"> 等),一切都运行良好,但我不知道如何获取附加到的数据以一种有效的方式展示 body 元素。
我可以在 JSoup 中轻松获得<body> 标签,但是这个标签中的文本通常是一团糟,并且不可能在我需要抓取的许多网页(大约 250 个左右)中概括其中的内容。如果我们有类似的东西,我想知道 HTML 树是否有用是这种情况
<span class="myclass">...</span>
<p>something.....</p>
<!-- We are back in the body here according to chrome devtools -->
Data1: some data here...
Data2: more data here...
...
<!-- We get a similar pile of HTML here except with different data in the span and p tags -->
<span class="myclass">...</span>
<p>something.....</p>
<!-- We are back in the body here according to chrome devtools -->
Data1: some data here...
Data2: more data here...
所以我的问题是我怎样才能在这里使用 DOM 树有效地到达Data*,或者我可能在这个问题陈述中遗漏了明显的东西,因为我无论如何都不是网络开发人员,这只是一个爱好项目.
我有一些想法:预处理 HTML 以在这些周围放置某种标记,我可以使用 JSoup 轻松提取这些标记(例如带有类的 <span> 标记)。另一个想法是使用 XPath 获取文档该部分的确切路径。但是,这两个想法似乎都要求我首先能够获取数据。
【问题讨论】:
标签: java html html-parsing jsoup