java - 如何使用 jsoup 从具有多个类的 td 获取数据

标签 java jsoup

从网页中,我试图提取包含以下文本的数据,其中我被多个类困在 td 中。我无法从具有多个类的表的 td 中获取数据。

<div class="Uia">
<div class="eXa Iqc">
<div class="wna fa-Lsa Ala">
<div class="Cr Aha">Contact info</div>
<div class="y4">
<table class="Mlb">
<tbody>
<tr>
<td class="MAa">Address</td>
<td class="QLa adr">
<div class="PHb">
<div>
1600 Amphitheatre Pkwy
Mountain View, CA 94043
United States
</div>
</div></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>

我正在尝试提取 td class="QLa adr"中的地址。请帮助我。

System.out.println("ADDRESS  : " +doc.select("div.Uia > div.eXa.Iqc > div.wna.fa-Lsa.Ala > div.y4 > table[class=Mlb] > tbody > tr > td[class=QLa adr] > div").text());

最佳答案

您不必使用如此复杂的表达式来获取类,您可以直接选择它们。

此外,[] 语法用于选择属性 - 与普通 CSS 选择器一样,通过在名称前添加 . 来选择类。

在这种情况下,假设您的网站是从字符串加载的(尽管显然您可以使用 connect 加载它),以获取您可以使用的文本

Document doc = Jsoup.parse(soup);
Elements extractedClasses = doc.select(".QLa.adr");

System.out.println(extractedClasses.text());

打印出来

1600 Amphitheatre Pkwy Mountain View, CA 94043 United States

关于java - 如何使用 jsoup 从具有多个类的 td 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30934165/

相关文章:

java - 将 Kotlin MainActivity 移植到 Java 时的侧面和底部导航问题

java - GWT CELLTABLE pager 如何确定用户点击了哪个按钮?

java - 替换java中字符串中所有出现的字符?

java - 从 JPanel 获取选定的组件

java - 如何从div类中获取文本?

java - 元素之一的 Jsoup 选择器

java - 如何发现 Java 反序列化问题?

java - Jsoup 爬虫和 HTTP 错误获取 URL

java - 从 servlet 访问 WebContent 中的文件

java - 使用 JSoup 和 Android Studio 从网站或 rss feed 收集信息