java - 从 html <body> 元素中抓取数据

标签 java html html-parsing jsoup

我正在使用 JSoup,它是一个纯 Java 的 HTML 解析器库,用于从互联网上提取和解析纯 HTML 页面(嗯,只有很少的 JS)。到目前为止,如果我想要抓取的数据附加到一个非常详细的 HTML 元素(如 <a href="...."><span class="myclass myotherclass"> 等),一切都工作正常,但我不知道如何以有效的方式获取附加到 body 元素的数据。

我可以获得<body>在 JSoup 中轻松标记,但此标记中的文本通常很困惑,并且不可能在我需要抓取的许多网页(大约 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...

所以我的问题是我怎样才能到达Data*在这里有效地使用 DOM 树,或者也许我在这个问题陈述中遗漏了明显的内容,因为我无论如何都不是 Web 开发人员,这只是一个业余爱好项目。

我的一些想法:预处理 HTML,在这些标签周围放置某种标签,我可以使用 JSoup 轻松提取这些标签(例如带有类的 <span> 标签)。另一个想法是使用 XPath 获取文档该部分的确切路径。然而,这两个想法似乎都要求我首先能够获取数据。

最佳答案

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

关于java - 从 html <body> 元素中抓取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30063805/

相关文章:

java - jtable鼠标事件弹出2次

javascript - required 不适用于文本字段

python - 尝试从网页中提取一些数据(抓取初学者)

javascript - CSS/HTML 中的响应式对 Angular 线

python - 将 lxml 设置为默认 BeautifulSoup 解析器

javascript - 指向被单击元素的 jQuery 指针

java - Gradle - 从任务附加到系统路径

java - 按字母顺序对 ArrayList<String[]> 进行排序

java - 正则表达式:删除 Java 中的第二对括号

html - 无法使用 css 设置标题背景