【问题标题】:Scraping data from html <body> element从 html <body> 元素中抓取数据
【发布时间】:2015-07-15 19:50:13
【问题描述】:

我正在使用 JSoup,它是纯 Java 中的 HTML 解析器库,用于从 Internet 上提取和解析纯 HTML 页面(嗯,JS 很少)。到目前为止,如果我要抓取的数据附加到一个非常冗长的 HTML 元素(如 &lt;a href="...."&gt; 或 &lt;span class="myclass myotherclass"&gt; 等),一切都运行良好,但我不知道如何获取附加到的数据以一种有效的方式展示 body 元素。

我可以在 JSoup 中轻松获得&lt;body&gt; 标签,但是这个标签中的文本通常是一团糟,并且不可能在我需要抓取的许多网页(大约 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 轻松提取这些标记(例如带有类的 &lt;span&gt; 标记)。另一个想法是使用 XPath 获取文档该部分的确切路径。但是,这两个想法似乎都要求我首先能够获取数据。

【问题讨论】:

标签: java html html-parsing jsoup


【解决方案1】:

我做了和你一样的事情,我发现将 Jsoup 和 HTML 清理器混合起来更好,基本上你需要 HTML 清理器来获取你的 dom 树,然后你可以使用 JSOP

【讨论】:

  • Hey Alaa,HTMLCleaner 的文档非常少。为了在正文中获取我想要的文本,我会设置哪些更简洁的属性?我应该以某种方式设置一些转换吗?
猜你喜欢
  • 1970-01-01
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
相关资源
最近更新 更多