2013-06-04 5 views
0

У меня возникли проблемы и не удалось решить проблему с двух последних недель. Мне нужна помощь здесь. Я действительно хочу получить и использовать некоторые полезные данные с HTTP-сайта. Этот сайт фактически содержит аварии, инциденты и всю информацию о них. Я хочу получить эту информацию с веб-сайта. Я буду использовать его в своем приложении для Android. Я уже задал этот вопрос, но все еще не смог его решить. Кто-то сказал мне, что вам нужно получить эти данные от JSON. Я этого раньше не делал. Если это единственное решение, то как я могу это сделать. Если любой другой простой способ есть, пожалуйста, дайте мне это. Я на самом деле есть получить все содержание веб-сайта с помощьюКак собрать (получить и проанализировать) требуемую информацию/данные с веб-сайта HTTP?

private String DownloadText(String URL) { 
    int BUFFER_SIZE = 2000; 
    InputStream in = null; 
    try { 
     in = OpenHttpConnection(URL); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
     return "exception in downloadText"; 
    } 

    InputStreamReader isr = new InputStreamReader(in); 
    int charRead; 
    String str = ""; 
    char[] inputBuffer = new char[BUFFER_SIZE];   
    try { 
     while ((charRead = isr.read(inputBuffer))>0) 
     {      
      //---convert the chars to a String--- 
      String readString = String.copyValueOf(inputBuffer, 0, charRead); 
      str += readString; 
      inputBuffer = new char[BUFFER_SIZE]; 
     } 
     in.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return ""; 
    }  
    return str;   
} 

private InputStream OpenHttpConnection(String urlString) throws IOException { 

    InputStream in = null; 
    int response = -1; 

    URL url = new URL(urlString); 
    URLConnection conn = url.openConnection(); 

    if (!(conn instanceof HttpURLConnection))      
     throw new IOException("Not an HTTP connection"); 

    try{ 
     HttpURLConnection httpConn = (HttpURLConnection) conn; 
     httpConn.setAllowUserInteraction(false); 
     httpConn.setInstanceFollowRedirects(true); 
     httpConn.setRequestMethod("GET"); 
     httpConn.connect(); 

     response = httpConn.getResponseCode();     
     if (response == HttpURLConnection.HTTP_OK) { 
      in = httpConn.getInputStream();         
     }      
    } 
    catch (Exception ex) { 
     throw new IOException("Error connecting");    
    } 
    return in;  
} 

Но это дает все содержание то есть вся информация + HTML + XML +++. Но я хочу только необходимую информацию.

Другое дело, является ли обязательным получение разрешения на веб-сайт до получения этих данных?

ответ

1

То, что вы ищете, называется веб-соскабливанием или соскабливанием html. Взгляните на этот вопрос, чтобы вы начали: Options for HTML scraping?