2013-04-16 48 views
0

我一直在使用Jsoup與谷歌搜索博客和每一件事情的工作就好了欺騙,但是當我用另一個網站像這樣的WhosTalkin我不能提取結果數據和鏈接。我的代碼:Jsoup不能正確解析鏈接到HTML

Connection.Response response = null; 
    String url = "http://www.whostalkin.com/search?q=boston&x=0&y=0"; 
     // 
     try { 
      response = Jsoup.connect(url) 
         .userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31") 
         .timeout(10000) 
         .execute(); 
     } catch (IOException e) { 
      System.out.println("io - "+e); 
     } 
     // get page title 
     Document doc = response.parse(); 
     String title = doc.title(); 
     System.out.println("Page Title: " + title +"\n"); 

,在這裏在這裏我提取數據的部分:

Elements links = doc.getElementsByTag("h3"); 
     for (Element link : links) { 
      System.out.println("\nTitle: " + link.select("a").attr("title")); 
      System.out.println("Result: " + link.select("a").attr("href")); 
      } 

,當我只是想確保Jsoup不能正確解析HTML我使用的Try Jsoup並獲取URL ,當我用瀏覽器檢查它時,他給了我HTML代碼與代碼不匹配。

回答

1

您沒有使用正確的選擇。查找drill CSS類。到達元素更容易。

Elements elementsByClass = parse.getElementsByClass("drill"); 
for (Element link : elementsByClass) 
{ 
    List<Node> childNodes = link.childNodes(); 
    System.out.println("Title: " + childNodes.get(1)); 
    System.out.println("Result: " + childNodes.get(0).attr("src")); 
} 

打印

Title: Backtype 
Result: http://www.whostalkin.com/img/backtype.png 

Title: FriendFeed 
Result: http://www.whostalkin.com/img/friendfeed.png 

... 
+0

好吧,我沒有得到什麼,你告訴我的「鑽」,但首先我想結果會是這樣的:標題:波士頓和祈禱..結果:www.linkhere。線的底部我不能提取鏈接 –

+0

你的意思是在搜索結果上顯示的搜索結果?它們是動態獲取的。由於Jsoup不評估HTML的JavaScript,因此無法用Jsoup輕鬆解析它們。 –

+0

是的,這我的意思,那麼,有沒有其他替代解決方案?另一個解析器是我的? –