Parse HTML mit Scanner

StefMa

StefMa

Dauergast
450
Hallo,

mit folgendem Code möchte ich eine HTML Seite auslesen:
Code:
        InputStream is = null;
        
        try
        {
            URL url = new URL("https://www.android-hilfe.de/forum/android-app-entwicklung.9/html-parsing.5288.html");
            is = url.openStream();

            String sc = new Scanner( is ).useDelimiter("\\Z").next();
            Log.v("INDEX=1", sc);
            
// Ligen - ausschlielich LIEGEN!
            Pattern pattern = Pattern.compile("document.*?<img");
            Matcher match = pattern.matcher(sc);
Das problem ist jetzt:
Er liest bzw. bekommt nicht die Komplette seite!
Das Log.v - also sc hat nur ca 8 zeilen:
02-23 17:01:52.950: V/INDEX=1(2402): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de"> <head>
02-23 17:01:52.950: V/INDEX=1(2402): <base href="https://www.android-hilfe.de/forum/android-app-entwicklung.9/html-parsing.5288.html" /> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <meta name="keywords" content="HTML,Parsing, HTML Parsing, android, android forum, samsung galaxy s, htc desire, nexus one, htc hero, motorola milestone" /> <meta name="description" content="Ich habe gerade erst mit der Enwticklung von Androidanwendungen angefangen. Da ich bereits ein erfahrener Java-Enwtickler bin war nicht allzu viel" /> <style type="text/css" id="vbulletin_css">
02-23 17:01:52.950: V/INDEX=1(2402): /**
02-23 17:01:52.950: V/INDEX=1(2402): * vBulletin 3.8.7 CSS
02-23 17:01:52.950: V/INDEX=1(2402): * Style: 'Android-Hilfe.de - Standard'; Style ID: 8
02-23 17:01:52.950: V/INDEX=1(2402): */
02-23 17:01:52.950: V/INDEX=1(2402): @import url("https://www.android-hilfe.de/clientscript/vbulletin_css/style-5603827b-00008.css");
02-23 17:01:52.950: V/INDEX=1(2402): </st
02-23 17:01:52.950: V/!Hallo(2402): INDEX=0

Wieso liest er nicht den Kompletten Quelltext?

Liegt das an Android und deren "Internetverbdinung"? Da er einfach wieder "schnell" anwesend sein will (Also die Activity) und dadurch halt das Parsen hinten anstellt?

Denn wenn ich alles komplett in Java programmire funktionier es..!

MfG
 
Hallo,

ich bearbeite den Source später mit Regexp:
Code:
            Pattern pattern = Pattern.compile("<a.*?</a>");
            Matcher match = pattern.matcher(sc);
            
            while(match.find())
            {
                String format = match.group().replaceAll("<a style=.*?>", "").replaceAll("</a>", "");
                
                format = replaceUml(format);
                
                ligen.add(format);
            }

Also benötige ja den Code ja nur als String.
Wäre dafür auch (sogar besser weil "Android-Comform") diese möglichkeit gut -> How to get HTML source code from url in android? - Stack Overflow

Zum schluss hätte ich ja dann auch das result (also den Source Code der seite) als String und kann ihn über regexp bearbeiten..

Oder?

mfG Ice
 

Ähnliche Themen

B
Antworten
4
Aufrufe
491
bb321
B
FabianDev
Antworten
5
Aufrufe
557
swa00
swa00
MES
Antworten
10
Aufrufe
819
MES
MES
Zurück
Oben Unten