2012-01-04 61 views
0

我比較新使用jsoup,並且我似乎無法找到正確的查詢來解析出我正在查找的值。 HTML如下。無法使用jsoup解析HTML中的值

<img src='http://rootzwiki.com/public/style_images/ginger/t_unread.png' alt='New Replies' /><br /> 

</a> 
</td> 
<td class='col_f_content '> 



    <h4><a id="tid-link-12251" href="http://rootzwiki.com/topic/12251-romlte-rootzboat-403-v61/" title='View topic, started 17 December 2011 - 09:32 AM' class='topic_title'>[ROM][LTE] RootzBoat 4.0.3 V6.1</a></h4> 
    <br /> 
    <span class='desc lighter blend_links'> 
     Started by <a hovercard-ref="member" hovercard-id="5" class="_hovertrigger url fn " href='http://rootzwiki.com/user/5-birdman/'>birdman</a>, 17 Dec 2011 

    </span> 

     <ul class='mini_pagination'> 


        <li><a href="http://rootzwiki.com/topic/12251-romlte-rootzboat-403-v61/" title='Go to page 1'>1</a></li> 




        <li><a href="http://rootzwiki.com/topic/12251-romlte-rootzboat-403-v61/page__st__10" title='Go to page 2'>2</a></li> 




        <li><a href="http://rootzwiki.com/topic/12251-romlte-rootzboat-403-v61/page__st__20" title='Go to page 3'>3</a></li> 




        <li><a href="http://rootzwiki.com/topic/12251-romlte-rootzboat-403-v61/page__st__1990" title='Go to page 200'>200 &rarr;</a></li> 


     </ul> 

</td> 
<td class='col_f_preview __topic_preview'> 

     <a href='http://rootzwiki.com/topic/12251-romlte-rootzboat-403-v61/' class='expander closed' title='Preview this topic'>&nbsp;</a> 

</td> 
<td class='col_f_views desc blend_links'> 
    <ul> 
     <li> 



        <span class='ipsBadge ipsBadge_orange'>Hot</span>&nbsp; 

       <a href="http://rootzwiki.com/index.php?app=forums&amp;module=extras&amp;section=stats&amp;do=who&amp;t=12251" onclick="return ipb.forums.retrieveWhoPosted(12251);">1,999 replies</a> 
     </li> 
     <li class='views desc'>180,213 views</li> 
    </ul> 
</td> 
<td class='col_f_post'> 
    <a href='http://rootzwiki.com/user/49940-jakeday/' class='ipsUserPhotoLink left'> 
     <img src='http://rootzwiki.com/uploads/profile/photo-thumb-49940.jpg' class='ipsUserPhoto ipsUserPhoto_mini' /> 
    </a> 
    <ul class='last_post ipsType_small'> 
     <li><a hovercard-ref="member" hovercard-id="49940" class="_hovertrigger url fn " href='http://rootzwiki.com/user/49940-jakeday/'>jakeday</a></li> 
     <li> 
      <a href='http://rootzwiki.com/topic/12251-romlte-rootzboat-403-v61/page__view__getlastpost' title='Go to last post'>Today, 04:20 AM</a> 
     </li>        
    </ul> 
</td> 

我需要從那裏解析出birdman。我知道,一旦我定義了元素,我就可以用author.text();得到「birdman」,但是我不知道如何定義author元素。我想也許下面的代碼塊可以工作,但正如我所提到的,我對jsoup和html非常陌生,它顯然沒有用。 Theres沒有任何連接錯誤,並且jsoup正在爲我解析出的其他值工作。

  TitleResults titleArray = new TitleResults(); 
       Document doc = null; 
       try { 
        doc = Jsoup.connect(Constants.FORUM).get(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       Elements threads = doc.select(".topic_title"); 
       for (Element thread : threads) { 
        titleArray = new TitleResults(); 
        //Thread title 
        threadTitle = thread.text(); 
        titleArray.setItemName(threadTitle); 

        //Thread link 
        String threadStr = thread.attr("abs:href"); 
        String endTag = "/page__view__getnewpost"; //trim link 
        threadStr = new String(threadStr.replace(endTag, "")); 
        threadArray.add(threadStr); 

        titleArray.setAuthorDate("Author/Date"); 
        results.add(titleArray); 
       } 
       Elements authors = doc.select("a[hovercard-ref]"); 
       for (Element author : authors) { 
        if (author.attr("abs:href").contains("/user/")){ 
         Log.d("POC", "SUCCESS " + author.attr("abs:href")); 
        } else { 
         Log.d("POC", "FAILURE " + author.text());       
        } 
       } 
     } 
+0

'doc.select( 「一[名片-REF]」);'就像一個魅力...只是覺得一些提示:手機版本,用戶代理,設備上的HTML轉儲... – Selvin 2012-01-04 15:49:48

+0

沒有工作爲了我。這是我嘗試的第一件事情之一? – r2DoesInc 2012-01-04 15:53:37

+1

如何獲取html? (不是很清楚,但URLConnection/apache /其他?)http://pastebin.com/xfUQkGw0 12-13 21:06:44.462:D/POC(4391):SyNiK4L http://rootzwiki.com/user/242- D/POC(4391):SyNiK4L http://rootzwiki.com/user/242-synik4l/ 12-13 21:06:44.462:D/POC(4391) :Rythmyc http://rootzwiki.com/user/6325-rythmyc/ 12-13 21:06:44.462:D/POC(4391):Rythmyc http:// rootzwiki.com/user/6325-rythmyc /' – Selvin 2012-01-04 15:56:08

回答

0

我想你想得難;)

要獲得鏈接的birdman部分,只需使用以下命令:

Elements authors = doc.select("a"); 
for (Element author : authors) { 
    Log.d("POC", author.text()); 
} 

"a"檢索所有鏈接。之後,您可以像使用.text()那樣檢索值。

+0

我其實只是試過。 「a」沒有返回成員鏈接,只有線程鏈接。這是我正在使用的網址。 http://rootzwiki.com/forum/362-cdma-galaxy-nexus-developer-forum/ 你的答案只返回線程標題。 '[ROM]贖回Rom ICS v1.0.1 *更新* 1月3日下午8:30東部時間' – r2DoesInc 2012-01-04 14:59:54

+0

對不起,不知道網站上還有其他類型的鏈接。 仍然有點奇怪,它不會返回成員鏈接,因爲它用不同類型的鏈接爲我工作。你嘗試過使用'[hovercard-ref]'嗎? – 2012-01-04 15:03:35

+0

你也試過。 :/我也只是用相關代碼的全部塊更新了我的問題,以防您發現我忽略的某些東西 – r2DoesInc 2012-01-04 15:04:50