我试图获得每部电影的评级,但我似乎无法以正确的方式使用选择方法。我想从网页上获取 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);
提前致谢!
答案 0 :(得分:2)
您可以使用.star-box-giga-star
按类选择元素,并使用text()
获取元素的文本内容。
doc.select(".star-box-giga-star").text();
答案 1 :(得分:0)
您的选择器问题在于您使用ancestor child
选择器而不是.class
或element.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);
不幸的是,这将打印
<div class="titlePageSprite star-box-giga-star">
7.0
</div>
因此,如果您只想从该元素获取文字竞争,请使用System.out.println(rating.text());
BTW因为只有一个元素star-box-giga-star
,所以你可以使用
String rating = doc.select(".star-box-giga-star").text();
所示