【问题标题】:JSoup | Fetching part of the HTML汤 |获取部分 HTML
【发布时间】:2020-12-30 17:01:54
【问题描述】:

我在获取包含汽车广告的网站时遇到问题。我想从中得到广告商的名字。主要问题是有时该名称以不同的方式显示。

1) 名字是Kajetan

(https://www.otomoto.pl/oferta/mercedes-benz-klasa-e-w211-bardzo-dobry-stan-bez-wkladu-finansowego-warszawa-ryki-ID6BEBy9.html#2bd424144f)

   <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

(https://www.otomoto.pl/oferta/kia-ceed-1-6-crdi-136-km-m-bws-fvat-salon-serwis-polska-ID6BHFu3.html#2bd424144f)

<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;
    }

但在第二种情况下,问题是&lt;h2&gt;之后还有额外的&lt;div&gt;,而且广告客户的名称在&lt;a href=""之间。

我应该如何将 fetchOwnerName 方法更改为通用方法?我正在使用 JSOUP 库来解析 HTML 页面。感谢您的所有建议。

【问题讨论】:

    标签: java html parsing jsoup


    【解决方案1】:

    您可以在 h2 标签中获取文本,而无需担心额外的标签 i.e div a

    您只需致电.text()

    Elements ownerElement = Jsoup.parse(html).getElementsByClass("seller-box__seller-info").select("h2");
    String owner = ownerElement.text();
    

    如果在h2 标记之间除了广告商名称之外没有其他文本,这将起作用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      相关资源
      最近更新 更多