• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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