1

我正在尝试获取每部电影的评分,但我似乎无法以正确的方式使用 select 方法。我正在尝试从网页中获取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

您的选择器的问题是您使用的是ancestor child选择器而不是.classelement.class喜欢div.star-box。请注意,要使用多个类,您需要使用element.class1.class2,或者.class1.class2如果您不想指定element.

另外,如果您想指定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);

Unfortunately this will print

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

so if you want to get only text contend from that element use System.out.println(rating.text());


BTW since there is only one element with class star-box-giga-star you can just use

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

as shown in Alex answer

于 2013-10-18T15:55:48.253 回答