Startseite › Foren › Deutsches LiveCode-Forum › Anzeige von "purem" Text von Webseiten › Antwort auf: Anzeige von "purem" Text von Webseiten
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 " " 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