simples Beispiel HTML parsen

X

xazen

Ambitioniertes Mitglied
0
Hallo Leute,

kann mir jemand ein ganz simples Beispiel dafür geben, wie ich den Inhalt einer HTML-Seite auslese ?

Beispiel: Die HTML-Datei beinhaltet nur:

Code:
HalloWelt

Wie kann ich eine Variable erstellen, welches einfach den String "HalloWelt" hat. Die HTML-Datei hat keinerlei TAGS. Das Protokoll ist https.
 
Ich hab es bei meinem aktuellen Projekt so gelöst:

PHP:
	//-URL laden
    public static String getText(String url) {
    	
        //-String für Rückgabe
        String result = "";

    	//-HTTPClient erstellen
        HttpClient httpclient = new DefaultHttpClient();
        
        //-HHTPGet erstellen
        HttpGet httpget = new HttpGet(url); 
        
        //-HTTPResponse erstellen
        HttpResponse response;
     
        //-Anforderung starten
        try {
        	
        	//-Antwort von HTTPClient mit HTTPGet
            response = httpclient.execute(httpget);
            
            //-HTTPEntity auf Antwort ausführen
            HttpEntity entity = response.getEntity();
            
            //-Wenn es eine antwort gibt
            if (entity != null) {
 
                //-Antwort in InputStream speichern
                InputStream instream = entity.getContent();
                
                //-InputStream in String umwandeln
                result= convertStreamToString(instream);

                //-InputStream schließen
                instream.close();
 
            }

        //-Exception abfangen
        } catch (ClientProtocolException e) {

        	//-Fehler speichern
            e.printStackTrace();
            
            result = "ClientProtocolException";
            
        //-Exception abfangen    
        } catch (IOException e) {
        	
        	//-Fehler speichern
            e.printStackTrace();
            
            result = "IOException";
             
        }
        
        return result;  

    }

Jetzt fehlt nur noch der StreamReader

PHP:
	//-InputStream in String convertieren
    private static String convertStreamToString(InputStream is) {
        
    	//-BufferReader mit InputStream erstellen
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        
        //-StringBuilder erstellen
        StringBuilder sb = new StringBuilder();
 
        //-Abbruchbedingung
        String line = null;
        
        try {
        	
        	//-While-Schleife ausführen, bis man in der letzten Zeile des BufferReader angekommen ist
            while ((line = reader.readLine()) != null) {
            	
            	//-Neue Zeile an String anhängen
                sb.append(line + "\n");
                
            }
            
        //-Exception abfangen    
        } catch (IOException e) {
        	
            e.printStackTrace();
            
        } finally {
            try {
                is.close();
                
              //-Exception abfangen       
            } catch (IOException e) {
            	
                e.printStackTrace();
                
            }
        }
        
        //-String zurückgeben
        return sb.toString();
    }
 
Das Problem hörte sich so simpel an. Und dennoch so viel Code...
Funktioniert aber super und macht genau das was ich brauche. :thumbsup: Danke!
 
Ich hab mir eine Art DownloadHandler dafür geschrieben. Damit kann ich dann JSONArrays, JSONObjecte oder einach nur Text herunterladen.

Sowas erleichtert die Arbeit ungemein.
 
Habe ich bisher nicht gebraucht. Aber hört sich auf jedenfall hilfreich an. Würdest du mir den Code dafür geben ? :)
 
Nicht sehr schön, aber es erfüllt seinen Zweck.

PHP:
package de.xxx.xxxxx;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
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;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class DownloadHandler {

	//-InputStream in String convertieren
    private static String convertStreamToString(InputStream is) {
        
    	//-BufferReader mit InputStream erstellen
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        
        //-StringBuilder erstellen
        StringBuilder sb = new StringBuilder();
 
        //-Abbruchbedingung
        String line = null;
        
        try {
        	
        	//-While-Schleife ausführen, bis man in der letzten Zeile des BufferReader angekommen ist
            while ((line = reader.readLine()) != null) {
            	
            	//-Neue Zeile an String anhängen
                sb.append(line + "\n");
                
            }
            
        //-Exception abfangen    
        } catch (IOException e) {
        	
            e.printStackTrace();
            
        } finally {
            try {
                is.close();
                
              //-Exception abfangen       
            } catch (IOException e) {
            	
                e.printStackTrace();
                
            }
        }
        
        //-String zurückgeben
        return sb.toString();
    }
	
	//-JSONArray von URL laden
    public static String getArticle(String url) {
    	
        //-String für Rückgabe
        String result = "";

    	//-HTTPClient erstellen
        HttpClient httpclient = new DefaultHttpClient();
        
        //-HHTPGet erstellen
        HttpGet httpget = new HttpGet(url); 
        
        //-HTTPResponse erstellen
        HttpResponse response;
     
        //-Anforderung starten
        try {
        	
        	//-Antwort von HTTPClient mit HTTPGet
            response = httpclient.execute(httpget);
            
            //-HTTPEntity auf Antwort ausführen
            HttpEntity entity = response.getEntity();
            
            //-Wenn es eine antwort gibt
            if (entity != null) {
 
                //-Antwort in InputStream speichern
                InputStream instream = entity.getContent();
                
                //-InputStream in String umwandeln
                result= convertStreamToString(instream);

                //-InputStream schließen
                instream.close();
 
            }

        //-Exception abfangen
        } catch (ClientProtocolException e) {

        	//-Fehler speichern
            e.printStackTrace();
            
            result = "ClientProtocolException";
            
        //-Exception abfangen    
        } catch (IOException e) {
        	
        	//-Fehler speichern
            e.printStackTrace();
            
            result = "IOException";
             
        }
        
        return result;  

    }
    
	//-JSONArray von URL laden
    public static String getJsonArray(String url) {
    	
        //-String für Rückgabe
        String jsArr = "";

    	//-HTTPClient erstellen
        HttpClient httpclient = new DefaultHttpClient();
        
        //-HHTPGet erstellen
        HttpGet httpget = new HttpGet(url); 
        
        //-HTTPResponse erstellen
        HttpResponse response;
     
        //-Anforderung starten
        try {
        	
        	//-Antwort von HTTPClient mit HTTPGet
            response = httpclient.execute(httpget);
            
            //-HTTPEntity auf Antwort ausführen
            HttpEntity entity = response.getEntity();
            
            //-Wenn es eine antwort gibt
            if (entity != null) {
 
                //-Antwort in InputStream speichern
                InputStream instream = entity.getContent();
                
                //-InputStream in String umwandeln
                String result= convertStreamToString(instream);
 
                //-String in JSONObject umwandeen
                JSONArray json = new JSONArray(result);

                //-InputStream schließen
                instream.close();
                
                //-JSONObject zurück geben
                jsArr = json.toString();
            }
 
 
        //-Exception abfangen
        } catch (ClientProtocolException e) {

        	//-Fehler speichern
            e.printStackTrace();
            
            jsArr = "ClientProtocolException";
            
        //-Exception abfangen    
        } catch (IOException e) {
        	
        	//-Fehler speichern
            e.printStackTrace();
            
            jsArr = "IOException";
            
        //-Exception abfangen    
        } catch (JSONException e) {
        	
        	//-Fehler speichern
            e.printStackTrace(); 
            
            jsArr = "JSONException";

        }
        
        return jsArr;  

    }
    
	//-JSONObject von URL laden
    public static String getJsonObject(String url) {
    	
        //-String für Rückgabe
        String jsObj = "";

    	//-HTTPClient erstellen
        HttpClient httpclient = new DefaultHttpClient();
        
        //-HHTPGet erstellen
        HttpGet httpget = new HttpGet(url); 
        
        //-HTTPResponse erstellen
        HttpResponse response;
     
        //-Anforderung starten
        try {
        	
        	//-Antwort von HTTPClient mit HTTPGet
            response = httpclient.execute(httpget);
            
            //-HTTPEntity auf Antwort ausführen
            HttpEntity entity = response.getEntity();
            
            //-Wenn es eine antwort gibt
            if (entity != null) {
 
                //-Antwort in InputStream speichern
                InputStream instream = entity.getContent();
                
                //-InputStream in String umwandeln
                String result= convertStreamToString(instream);
 
                //-String in JSONObject umwandeen
                JSONObject json = new JSONObject(result);

                //-InputStream schließen
                instream.close();
                
                //-JSONObject zurück geben
                jsObj = json.toString();
            }
 
 
        //-Exception abfangen
        } catch (ClientProtocolException e) {

        	//-Fehler speichern
            e.printStackTrace();
            
            jsObj = "ClientProtocolException";
            
        //-Exception abfangen    
        } catch (IOException e) {
        	
        	//-Fehler speichern
            e.printStackTrace();
            
            jsObj = "IOException";
            
        //-Exception abfangen    
        } catch (JSONException e) {
        	
        	//-Fehler speichern
            e.printStackTrace(); 
            
            jsObj = "JSONException";

        }
        
        return jsObj;  

    }
	
}
 
Danke! Werde es bei Gelgenheit direkt austesten.
 
Sobald die Internetseite etwas aufwendiger wird, solltest du dir überlegen die DOM Parser API zu verwenden. Damit kannst du alle Objekte mit bestimmten Attributen suchen, durch Strukturen iterieren usw.

Android XML Parsing Tutorial
 
Die Klasse habe ich auch gefunden. Das da "XML" dran stand hat mich aber irritiert, weswegen ich mir das nicht weiter angeschaut habe. Aber danke für den Hinweis. Wenn es auch mit HTML funktioniert dann werde ich es mir mal genauer anschauen :)
 

Ähnliche Themen

numanoid
Antworten
4
Aufrufe
1.535
numanoid
numanoid
F
Antworten
0
Aufrufe
822
FlorianAlfredo
F
S
Antworten
9
Aufrufe
1.456
jogimuc
J
Zurück
Oben Unten