簡體   English   中英

如何使用jsoup從具有多個類的td獲取數據

[英]How to get data from td with multiple classes using 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 選擇器一樣,通過在名稱前加上前綴來選擇類. .

在這種情況下,假設您的網站是從 String 加載的(盡管顯然您可以使用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

我可以得到它

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());

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM