1

各映画の評価を取得しようとしていますが、選択方法を正しく使用できないようです。Webページから7.0の部分を取得しようとしています:

http://www.imdb.com/title/tt0800369/

<div class="star-box giga-star">
        <div class="titlePageSprite star-box-giga-star"> 7.0 </div>

私はJavaでこの行を使用しています:

Element rating = doc.select("star-box giga-star").first();
System.out.println(rating);

前もって感謝します!

4

2 に答える 2

2

を使用してクラスごとに要素を選択し.star-box-giga-star、 を使用text()して要素のテキスト コンテンツを取得できます。

doc.select(".star-box-giga-star").text();
于 2013-10-18T15:29:40.933 に答える
1

セレクターの問題は、 or likeancestor childの代わりにセレクターを使用していることです。複数のクラスを使用するには、使用する必要があるか、または単に指定したくない場合に注意してください。.classelement.classdiv.star-boxelement.class1.class2.class1.class2element

parent childまた、関係を指定したい場合は、使用する必要が>あるので、次のようなものを試してください

Document doc = Jsoup.connect("http://www.imdb.com/title/tt0800369/").get();

Element rating = doc
        .select("div.star-box.giga-star > div.titlePageSprite.star-box-giga-star")
        .first();

System.out.println(rating);

残念ながら、これは印刷されます

<div class="titlePageSprite star-box-giga-star">
  7.0 
</div>

したがって、その要素からテキスト競合のみを取得する場合は、次を使用しますSystem.out.println(rating.text());


star-box-giga-starところで、使用できるクラスを持つ要素は1つしかないため

String rating = doc.select(".star-box-giga-star").text();

アレックスの回答に示されているように

于 2013-10-18T15:55:48.253 に答える