• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Xcode: Textdaten aus einer HTML Seite entnehmen

ecco55

Tokyo Rose
Registriert
26.10.14
Beiträge
71
Hallo,

Ich stehe vor folgendem Problem. Ich möchte aus einer Webseite ein Text/Satz (geht ums Prinzip) entnehmen, den ich dann weiter verarbeiten kann, z.B. in einem Label anzeigen lassen. Doch ich weiss nicht wie ich anfangen soll. Die Verbindung von der App zur Internetseite steht bereits. Ich hab das mal mit NSAttributeString ausprobiert, doch dort zeigt er mir die HTML Seite mit Farbe und allem an. Doch ich will nur einen Text Ausschnitt, den man verwenden kann.
 

frostdiver

Zwiebelapfel
Registriert
19.06.12
Beiträge
1.285
Du bekommst den reinen String aus dem AttributedString mit der string-Property:
Code:
NSAttributedString* attributedText = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)} documentAttributes:nil error:nil];
   
self.label.text=attributedText.string;
 

ecco55

Tokyo Rose
Registriert
26.10.14
Beiträge
71
danke für die Antwort. Bei mir wird htmlString aber als Fehler angezeigt. Was meinst du denn damit genau ?
 

frostdiver

Zwiebelapfel
Registriert
19.06.12
Beiträge
1.285
Code:
NSURL *url=[NSURL URLWithString:@"http://www.happy-ending.de"];
    NSString *htmlString=[NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:nil];
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Doch ich will nur einen Text Ausschnitt, den man verwenden kann.
Dann musst du dir irgendeine Logik überlegen, um die gewünschten Daten zu parsen.
Sinnvoll wäre, einen HTML-Parser zu nutzen (Google-Suche fördert einige Resultate zu Tage). Zur Not tun es aber auch reguläre Ausdrücke (auch wenn einen die Fundamentalisten immer gleich steinigen wollen, wenn man HTML und RegEx in einem Satz erwähnt).
 

ecco55

Tokyo Rose
Registriert
26.10.14
Beiträge
71
Vielen dank für die Antworten. Ich versuche dann mein Ziel anders zu erreichen :D aber trotzdem vielen dank für die Hilfe. Ich bin so immerhin ein Schritt weiter gekommen
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Ein Tipp noch aus eigener "leidvollen" Erfahrung: Bau dir selber einen kleinen Server dafür, jedenfalls wenn es sich um spezielle Webseiten handelt. Denn wenn sich die Webseite die du da parsen willst ändert musst du deine App im AppStore updaten. Du könntest z.B. einen Server in Python schreiben, das HTML mit beautifulsoup4 parsen und dann mit einem kleinen Server (z.B. Flask) als JSON ausgeben. Hat den Vorteil, dass du einfach nur auf dem Server etwas ändern musst wenn sich was an der Seite ändert und du JSON in der App hast, das deutlich flotter vom iPhone zu verarbeiten ist.
 
  • Like
Reaktionen: bezierkurve