2013-03-11 215 views
0

配置:適用於Android的Eclipse開發者 - jre1.7 - Windows 8(:s) -在android上的簡單網絡爬蟲?

我正在開發Android上的一個小應用程序。目前,我只想在MainActivity上打印我的網站。我真的試圖用計算器和我的耐心去實現它,我落在下面的源代碼:

import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.Reader; 
import java.util.HashSet; 
import java.util.Set; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 

public class Crawler { 



      public static void main(String[] args) throws ClientProtocolException, IOException { 
      crawlPage("http://www.google.com/"); 
     }  

         private static void crawlPage(String string) { 
       // TODO Auto-generated method stub 
         } 

     static Set<String checked = new HashSet<String(); 

     @SuppressWarnings("unused")   private static void main(String url) throws ClientProtocolException, IOException { 

      if (checked.contains(url)) 
       return; 

      checked.add(url); 

      System.out.println("Crawling: " + url); 

      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet("http://www.bratiska.wordpress.com"); 
      HttpResponse response = client.execute(request); 

      Reader reader = null; 
      try { 
       reader = new InputStreamReader(response.getEntity().getContent()); 


       String link=""; 
       new ParserDelegator().parse(reader, link, true); 

       if (link.startsWith("http://www.libnum.fr")) 
         crawlPage(link); 

      } finally { 
       if (reader != null) { 
        try { 
         reader.close(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
     } 
} 

需要幫助的private static void crawlPage()方法!

+0

這似乎是什麼問題呢? – 2013-03-11 12:38:25

+0

這與Android沒有任何關係 – 2013-03-11 12:40:40

+0

您收到的錯誤是什麼? – kabuto178 2013-03-11 12:43:24

回答

0

這應該是一個Android應用程序?如果是這樣,也許首先將這些代碼放入一個Activity中。大多數Android應用程序都是從某種活動開始的,或者是某種服務。從那裏可能把Web請求放在AsyncTask中,除非線程違規不是問題,但主函數讓我認爲這是爲Java而不是Android編寫的。抓取頁面方法應該只是將輸入流讀入一個StringBuilder並將接收到的文本寫入一個TextView?你必須給我們更多的繼續。也許首先把它放到Android應用程序中,我們可以從那裏獲得更多幫助。

+0

謝謝肖恩!所以我的新問題是Java中的crawlPage方法。 – bratiska 2013-03-13 09:54:47

+0

謝謝你批准我的答案。我在這裏沒有我想象中的那麼高的評分。我想象你的網絡爬蟲只是要讀取網頁上的文字?這可以通過一些簡單的例子來完成。如果你需要幫助,我可以發佈如何做另一個答案。 – Sean 2013-03-14 11:03:19