2011-08-15 34 views
0

我正在使用它從本網站獲取項目並返回到列表。如何使用選擇器獲取href元素?

Document doc = null; 
    try { 
     doc = Jsoup.connect("http://www.gamespy.com/index/release.html").get(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
     // Get all td's that are a child of a row - each game has 4 of these 
     Elements games = doc.select("tr> td.indexList1, tr > td.indexList2"); 

     // Iterator over those elements  
     ListIterator<Element> postIt = games.listIterator();   
     while (postIt.hasNext()) {  
      // ...It 

      while (postIt.hasNext()) {  
       // Add the game text to the ArrayList  
       String name = postIt.next().text(); 
       String platform = postIt.next().text(); 
       String genre = postIt.next().text(); 
       String releaseDate = postIt.next().text(); 
       gameList.add(new GameRelease(name, platform, genre, releaseDate)); 
       Log.v(TAG, name +platform + genre +releaseDate); 
      } 

這是每個項目

<tr> 
<td class="indexList1" align="left"> 
    <a href="http://pc.gamespy.com/pc/hacker-evolution-duality-/" class="b1"> 
    <em>Hacker Evolution Duality </em> 
    </a> 
</td> 
<td class="indexList1" align="center"> 
    PC 
</td>  
<td class="indexList1" align="center"> 

    Adventure 
</td> 
<td class="indexList1" align="center"> 
    August 15, 2011 
    <!--08/15/2011--> 
</td> 

每個項目都有相同的模式HTML,但我想知道我可以在retreive網址爲每個項目太多。你們可能需要查看html的來源,也可以得到一個更好的主意。

但我想要將每個項目的URL存儲在一個字符串中。

回答

2
while (postIt.hasNext()) { 
    // Get the title of the game 
    Element title = postIt.next(); 

    System.out.println(title.text()); 

    // Get the anchor element 
    Element url = title.select("a").first(); 

    // Get the URL here @@@ 
    System.out.println(url.attr("href")); 

    // Unneeded elements 
    Element platform = postIt.next(); 
    Element genre = postIt.next(); 

    // Get the release date of the game 
    Element release = postIt.next(); 
    System.out.println(release.text() + "\[email protected]@@@@@"); 
} 

編輯:在您的情況:

Element name = postIt.next(); 
String nameString = name.text(); 

Element url = name.select("a").first(); 
String urlString = url.attr("href"); 
1

每個項目都有相同的模式,但我想知道我是否也可以檢索每個項目的網址。

Elements links = doc.getElementsByTag("a"); // or getElementsByClass("b1"); 

ListIterator<Element> postIt = games.listIterator();   
    while (postIt.hasNext()) { 
     String linkHref = link.attr("href"); 
    } 
} 
+0

所以它會得到它的每個項目? seperately? –

+0

上面編輯... –

+0

不能我只是使用元素遊戲? –

相關問題