在android上的简单网络爬虫?

在android上的简单网络爬虫?

问题描述:

配置:适用于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

这应该是一个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