2011-09-29 48 views
0

我一直都經歷這些joup位從一個div獲得一些信息:我如何讓jsoup工作?

http://jsoup.org/cookbook/extracting-data/dom-navigation

Document doc = Jsoup.connect(path).get(); 
Element cat = doc.getElementById("category_1"); 
Elements links = cat.getElementsByTag("a"); 
for (Element link : links) 
{ 
    rstring += link.attr("href"); 
    rstring += link.text() + "\n"; 
} 

代碼位,我寫不工作,和香港專業教育學院一直在這幾個小時。

我可以得到一些什麼,我想用不同的jsoup功能,但我需要得到在這個特殊的動作,所以我可以填充和對某些事物陣列爲我Android應用程序的鏈接。

IM嘗試分析http://android.myfewclicks.com用於測試和構建我真正的網站的應用程序。

任何幫助都是美好的。 jsoup不會合作。

<table class="table_list"> 
     <tbody class="header" id="category_1"> 
      <tr> 
       <td colspan="4"> 
        <div class="cat_bar"> 
         <h3 class="catbg"> 
          <a class="collapse" href="http://android.myfewclicks.com/index.php?action=collapse;c=1;sa=collapse;c707bdb315=de9d7f201a0964cbab3d56e683507ad7#c1"><img src="http://android.myfewclicks.com/Themes/default/images/collapse.gif" alt="-" /></a> 
          <a class="unreadlink" href="http://android.myfewclicks.com/index.php?action=unread;c=1">Unread Posts</a> 
          <a id="c1"></a><a href="http://android.myfewclicks.com/index.php?action=collapse;c=1;sa=collapse;c707bdb315=de9d7f201a0964cbab3d56e683507ad7#c1">Category A</a> 
         </h3> 
        </div> 
       </td> 
      </tr> 
     </tbody> 

在我的測試論壇上,有四個分類。這個特定部分內的三個鏈接是4箇中的一個。如果我能夠弄清楚如何對這些內容進行解析,那麼我應該可以在我的應用程序上做出巨大的飛躍。但是jsoup並不像我想的那樣行事,或者我錯過了一些非常重要的事情。

+0

你可以發佈你想要解析的確切的HTML代碼片段嗎? – MarcoS

+0

它是我的測試網站的來源:http://android.myfewclicks.com。 – texasman1979

+0

基本破壞是即時爲主要網站做一個應用程序,但我不能讓jsoup正確行事。 – texasman1979

回答

1

您顯然需要登錄首先爲了得到與href的鏈接。當我打開我的瀏覽器的網站,而沒有登錄,我看到

<tbody class="header" id="category_1"> 
    <tr> 
     <td colspan="4"> 
      <div class="cat_bar"> 
       <h3 class="catbg"> 
        <a id="c1"></a>Category A 
       </h3> 
      </div> 
     </td> 
    </tr> 
</tbody> 

我能得到的鏈接如下:

Document document = Jsoup.connect("http://android.myfewclicks.com/").get(); 
Elements category1links = document.select("#category_1 a"); 

for (Element category1link : category1links) { 
    System.out.println(category1links); 
} 

它打印

<a id="c1"></a> 

注意,有沒有href或文本!

Jsoup不會自動登錄你,也不需要在其上已安裝在機器上的任意瀏覽器中的cookie。您需要自己登錄並維護會話cookie。示例參見Sending POST request with username and password and save session cookie

+0

我真的很感謝你的幫助。即時通訊登錄瀏覽器,我從來不會想到它會隱藏這樣的鏈接。不知道該網站如何爲客人工作。但是這是一個問題,我怎麼能得到與作爲客人運行的應用程序的重要內容。原因是,如果該應用程序解決,我即將發佈它的所有SMF論壇。但看了它之後,我可能已經回答了我自己的問題,探索瀏覽並不需要儘可能多的東西來瀏覽。 – texasman1979

+0

您可能對此項目有任何其他意見,我很樂意欣賞。 :) thx再次。 – texasman1979

+0

對不起,我不熟悉你的網站使用的表單引擎。這也沒有真正與編程有關。考慮在論壇引擎公司的支持網站上提問。 – BalusC