2013-10-18 177 views
0

我想獲得每部電影的評級,但我似乎無法以正確的方式使用select方法。我試圖從網頁得到7.0部分:Jsoup Select方法返回null

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

問題,您的選擇是,你正在使用ancestor child選擇,而不是.classelement.classdiv.star-box。請注意,如果您不想指定element,則需要使用多個類別element.class1.class2.class1.class2

此外,如果你想指定parentchild關係,你將不得不使用>所以儘量可能像

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(); 

如圖Alex answer

+0

非常感謝你的! – Craig

+0

@Craig歡迎:) – Pshemo

2

您可以使用.star-box-giga-star按類別選擇元素,並使用text()來獲取元素的文本內容。

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