【发布时间】:2020-12-30 17:01:54
【问题描述】:
我在获取包含汽车广告的网站时遇到问题。我想从中得到广告商的名字。主要问题是有时该名称以不同的方式显示。
1) 名字是Kajetan
<div class="seller-box__seller-info">
<small class="seller-box__seller-registration">Sprzedający na OTOMOTO od 2015</small>
<small class="seller-box__seller-type">Osoba prywatna</small>
<h2 class="seller-box__seller-name"> Kajetan </h2>
</div>
2) 名称是 AS MOTORS Centrum Pojazdów Używanych KIA
<div class="seller-box__seller-info">
<small class="seller-box__seller-registration">Sprzedający na OTOMOTO od 2019</small>
<small class="seller-box__seller-type">Dealer</small>
<h2 class="seller-box__seller-name">
<div class="seller-badge"> <img src="xx.jpg" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="Ten dealer korzysta z pakietu usług Premium Plus" class="">
</div>
<a href="https://asmotorsuzywane.otomoto.pl" title="AS MOTORS Centrum Pojazdów Używanych KIA">AS MOTORS Centrum Pojazdów Używanych KIA</a>
</h2>
</div>
在第一种情况下,解决方案很简单,因为我会这样做:
public static String fetchOwnerName (String html) {
Elements ownerElement = Jsoup.parse(html).getElementsByClass("seller-box__seller-info").select("h2");
String owner = StringUtils.substringBetween(String.valueOf(ownerElement), "\">", "</h2>");
return owner;
}
但在第二种情况下,问题是<h2>之后还有额外的<div>,而且广告客户的名称在<a href=""之间。
我应该如何将 fetchOwnerName 方法更改为通用方法?我正在使用 JSOUP 库来解析 HTML 页面。感谢您的所有建议。
【问题讨论】: