Antwort auf: Anzeige von "purem" Text von Webseiten

Startseite Foren Deutsches LiveCode-Forum Anzeige von "purem" Text von Webseiten Antwort auf: Anzeige von "purem" Text von Webseiten

#5686
Torsten
Teilnehmer

    Jou, ein paar kreative Stunden und es ist geschafft: hier der Text-Extraktor für Artikel von SPIEGEL ONLINE.

    Die Funktion für removeHTML hatte ich auch schon mal gefunden, die ist wirklich sehr nützlich. Die Funktion selectString habe ich selbst geschrieben.

    Vorraussetzung:
    * Browser-Widget mit Namen „SPONBrowser“, der als url eine URL eines Spiegel-Artikels hat (am besten die Homepage als Start und einen Artikel laden)
    * Field mit Namen „PlainText“
    * das folgende Script in einen Button einfügen

    Zum direkten Ausprobieren diese Zeile einfach in die Messagebox einfügen 🙂
    go to stack url "http://torstenholmer.bplaced.net/livecode_stacks/SPON-Text-Extraktor.livecode"

    
    function removeHTML pString  
       
       #  Gibt einen String ohne Tags zurück
       
       return replaceText(pString,"<[^<]+>",empty)
       
    end removeHTML
    
    function selectString pText, pStartString, pEndString  
       
       # Gibt den Text zwischen Start- und Endstring zurück
       
       set itemdelimiter to pStartString
       put item 2 of pText into pText
       set itemdelimiter to pEndString
       put item 1 of pText into pText
       return pText
    end selectString
    
    on mouseUp
       
       set the cursor to watch
       put empty into field "PlainText"
       put the htmltext of widget "SPONBrowser" into tText
       
       # Bereinigen des Textes
       
       replace tab with empty in tText
       replace "&nbsp;" with space in tText
       
       # Extrahiere dieTiteltexte zwischen <h1 und </h1> 
       
       put selectString(tText, "<h1 class=" & quote &"so-hdln" & quote & ">", "</h1>")  into tSnippet
       put removeHTML(tSnippet) & cr & cr  after tPureText
       
       
       # Extrahiere Titel-Unterschriften zwischen <h2> und </h2> 
       
       put "<" & selectString(tText, "<h2", "</h2>") into tSnippet
       put removeHTML(tSnippet) & cr & cr  after tPureText
       
       
       # Extrahiere Artikel-Intro-Text
       
       set itemdelimiter to "<p class=" & quote & "article-intro" & quote & ">" 
       repeat with i = 2 to the number of items of tText
          
          put selectString(item i of tText, "<strong>", "</p>")  into tSnippet
          put removeHTML(tSnippet) & cr & cr  after tPureText
          
       end repeat
       
       
       # Extrahiere Autoren-Info
       
       put "Von" && selectString(tText, "rel=" & quote & "author" & quote & ">" , "</a>") into tAuthor
       if tAuthor is not empty then put tAuthor & cr & cr after tPureText
       
       
       # Extrahiere die "normalen" Texte zwischen <p> und </p> 
       
       set itemdelimiter to "<p>"
       repeat with i = 2 to the number of items of tText
          
          put "<p>" & item i of tText into tSnippet
          put selectString(tSnippet, "<p>", "</p>")  into tSnippet
          put removeHTML(tSnippet) & cr & cr  after tPureText
          
       end repeat
       
       # Entfernen von leeren Doppelzeilen
       
       repeat while tPureText contains cr & cr & cr
          replace cr & cr & cr with cr & cr in tPureText
       end repeat
       
       put tPureText into fld "PlainText"
       set the cursor to arrow
       
    end mouseUp