如何使用 jSoup 从多合一 html class 中得到一个 "a href"
How to get one "a href" out of many in one html class with jSoup
我必须将 HTML 中的所有文本元素提取到 Java 字符串中。但是在单独的字符串中。
我有以下代码:
<div class="sb-spieldaten">
<p class="sb-datum hide-for-small">
<a href="/jumplist/spieltag/wettbewerb/C1/saison_id/2014/spieltag/2">2. Spieltag</a>
|
<a href="/aktuell/waspassiertheute/aktuell/new/datum/2014-07-26">Sa., 26.07.2014</a>
| 17:45 Uhr
</p>
<p class="sb-datum show-for-small">
<a href="/jumplist/spieltag/wettbewerb/C1/saison_id/2014/spieltag/2">2. Spieltag</a>
<br />
<a href="/aktuell/waspassiertheute/aktuell/new/datum/2014-07-26">26.07.2014</a>
<br>
17:45 Uhr
</p>
<div class="ergebnis-wrap">
<div class="sb-ergebnis">
<div class="sb-endstand">2:3
<div class="sb-halbzeit">(<span>2:</span>2)
</div>
</div>
</div>
</div>
<p class="sb-zusatzinfos">
<span class="hide-for-small">
<a href="/stadion/stadion/verein/504/saison_id/2014">Letzigrund</a>
|
<strong>4.200 Zuschauer</strong>
<br />
</span>
<strong>Schiedsrichter:</strong>
<br class="show-for-small" />
<a title="Fedayi San" href="/fedayi-san/profil/schiedsrichter/4791">Fedayi San</a>
</p>
</div>
我使用:
Elements myText = doc.getElementsByClass("sb-spieldaten");
String myString = myText.select(a.sb-datum.hide-for-small").text();
但是我用这个提取了 class "hide-for-small" 中的所有字符串。所以我得到的答案是: 2. Spieltag | 2014 年 7 月 26 日 | 17:45 Uhr 2.Spieltag 26.07.2014 17:45 Uhr Letzigrund | 4200 Zuschauer Schiedsrichter: Fedayi San
如何只获得其中一个字符串?我无法通过 .getElementsByClass("...") 找到它,这是可以理解的。有没有办法提取特定的 "a href" 元素?还是我必须使用 .split() 方法?
"Elements myText = doc.getElementsByClass(x);"
查看@有问题的网页的 CSS,找到分配给有问题的元素的 css 元素的 class id。
例如代码片段
Document abc = Jsoup.connect("http://www.abc.in/").timeout(0).get();
Elements ee = abc.select("a[href*=xyz]");// all hrefs containing xyz substring
String xyz = ee.first().attr("abs:href");
我必须将 HTML 中的所有文本元素提取到 Java 字符串中。但是在单独的字符串中。
我有以下代码:
<div class="sb-spieldaten">
<p class="sb-datum hide-for-small">
<a href="/jumplist/spieltag/wettbewerb/C1/saison_id/2014/spieltag/2">2. Spieltag</a>
|
<a href="/aktuell/waspassiertheute/aktuell/new/datum/2014-07-26">Sa., 26.07.2014</a>
| 17:45 Uhr
</p>
<p class="sb-datum show-for-small">
<a href="/jumplist/spieltag/wettbewerb/C1/saison_id/2014/spieltag/2">2. Spieltag</a>
<br />
<a href="/aktuell/waspassiertheute/aktuell/new/datum/2014-07-26">26.07.2014</a>
<br>
17:45 Uhr
</p>
<div class="ergebnis-wrap">
<div class="sb-ergebnis">
<div class="sb-endstand">2:3
<div class="sb-halbzeit">(<span>2:</span>2)
</div>
</div>
</div>
</div>
<p class="sb-zusatzinfos">
<span class="hide-for-small">
<a href="/stadion/stadion/verein/504/saison_id/2014">Letzigrund</a>
|
<strong>4.200 Zuschauer</strong>
<br />
</span>
<strong>Schiedsrichter:</strong>
<br class="show-for-small" />
<a title="Fedayi San" href="/fedayi-san/profil/schiedsrichter/4791">Fedayi San</a>
</p>
</div>
我使用:
Elements myText = doc.getElementsByClass("sb-spieldaten");
String myString = myText.select(a.sb-datum.hide-for-small").text();
但是我用这个提取了 class "hide-for-small" 中的所有字符串。所以我得到的答案是: 2. Spieltag | 2014 年 7 月 26 日 | 17:45 Uhr 2.Spieltag 26.07.2014 17:45 Uhr Letzigrund | 4200 Zuschauer Schiedsrichter: Fedayi San
如何只获得其中一个字符串?我无法通过 .getElementsByClass("...") 找到它,这是可以理解的。有没有办法提取特定的 "a href" 元素?还是我必须使用 .split() 方法?
"Elements myText = doc.getElementsByClass(x);"
查看@有问题的网页的 CSS,找到分配给有问题的元素的 css 元素的 class id。
例如代码片段
Document abc = Jsoup.connect("http://www.abc.in/").timeout(0).get();
Elements ee = abc.select("a[href*=xyz]");// all hrefs containing xyz substring
String xyz = ee.first().attr("abs:href");