Seite 7 von 7

Re: Extrahieren des reinen Textes aus einer HTML-Seite.

Verfasst: 18.11.2023 10:13
von juergenkulow

Code: Alles auswählen

; HTML zu indexsequentielle Text 
Url$="https://www.purebasic.fr/german/viewtopic.php?t=33073&start=50"
Define *Speicher=ReceiveHTTPMemory(Url$) ; Speicher kann via ReadData von Datei kommen.
If 0=*Speicher 
  Debug "Verbindungsfehler bei Seite: " +Url$
Else
  Define Antwort$=PeekS(*Speicher,MemorySize(*Speicher),#PB_UTF8) ; Inhalt von *Speicher in String umwandeln. 
  ; Suche alle Texte zwischen <HTML-Tags>.
  Define KlammerAufPosition = FindString(Antwort$,"<",1)          ; Suche eckige Klammer zu 
  Define Text$=Left(Antwort$,KlammerAufPosition-1)                ; Sollte es Text vor der ersten Klammer geben.
  i=1
  While KlammerAufPosition>0                                      ; Wenn es noch eine eckige Klammer auf gibt. 
    While Text$<>"" And (Left(Text$,1)=#LF$ Or Left(Text$,1)=#TAB$ Or Left(Text$,1)=#CR$) ; Linke Tabulatoren und Wagenrückläufe löschen 
      Text$=Mid(Text$,2)
    Wend
    If Text$<>""
;       If KlammerZu+1=13102
;         ShowMemoryViewer(@Text$,Len(Text$)*2)
;         Delay(5000)
;       EndIf   
      If FindString(Text$," ") And Text$<>" " And Text$<>" &raquo; " And 
         Left(Text$,5)<>"/FONT" And Left(Text$,8)<>"&lt;TD W" ; FindString Leerzeichen ist etwas zu hart.
        Temp$=Temp$+RSet(Str(i),5,"0")+"."+RSet(Str(KlammerZu+1),5,"0")+":"+
              Text$+#CRLF$ ;Speicher Text zwischen > und < in Temp$.
        i+1
      EndIf   
    EndIf   
    Define KlammerZu=FindString(Antwort$,">",KlammerAufPosition+1); Suche die eckige Klammer zu. 
    If KlammerZu>0
      KlammerAufPosition=FindString(Antwort$,"<",KlammerZu)         ; Suche eckige Klammer zu, wenn es keine gibt 0. 
      Text$=Mid(Antwort$,KlammerZu+1,KlammerAufPosition-KlammerZu-1)  
    Else
      KlammerAufPosition=0  ; Sonderfall Text nach letzter Klammer zu 
      If KlammerZu+1<Len(Antwort$)
        Temp$=Temp$+RSet(Str(i),5,"0")+"."+RSet(Str(KlammerZu+1),5,"0")+":"+
              Mid(Antwort$,KlammerZu+1)+#CRLF$ 
      EndIf   
    EndIf
  Wend                      ; Wenn die Schleife fertig ist steht der Text der Seite in Temp$ 
  FreeMemory(*Speicher)
  For i=1 To Len(Temp$) Step 15000 ;nötig für PB 6.03 
    Debug Mid(Temp$,i,15000)
  Next 
  ; Temp$ könnte auch mit  WriteString(#Datei, Text$ [, Format]) auf Datei ausgeben werden.
EndIf 

; 00001.00216:Extrahieren des reinen Textes aus einer HTML-Seite. - Seite 6 - PureBoard
; 00002.02567:Zum Inhalt
; 00003.03398:Erweiterte Suche
; 00004.05628:Unbeantwortete Themen
; 00005.05888:Aktive Themen
; 00006.08040:Extrahieren des reinen Textes aus einer HTML-Seite.
; 00007.08250:Anfängerfragen zum Programmieren mit PureBasic.
; 00008.10022:Erweiterte Suche
; 00009.11938: 16.07.2018 11:14
; 00010.12166:Re: Extrahieren des reinen Textes aus einer HTML-Seite.
; 00011.12952:von 
; 00012.13161:15.11.2023 17:47
; 00013.13251:Ich halte nur fest: Austeilen kannst Du, aber Einstecken nicht. - Ich habe nur reagiert.
; 00014.13349:Im übrigen  kannst Du doch nicht Dein Verständnis von einer Sache zum Maßstab für wahr oder falsch machen. Aber Schwamm 'drüber'.
; 00015.13483:Wenn Du Deine beruflichen Erfahrungen argumentativ benennst, dann will ich mit meinen auch nicht zurückhalten. Bevor ich mich selbständig gemacht habe, war ich EDV-Leiter in einem Unternehmen mit mehr als 500 Mitarbeitern. Da hat es auch schon 'mal gerummst..., aber dann war auch alles wieder gut. In meinem ALTER (ich bin über achtzig mittlerweile) kann man nicht mehr so einfach eine neue Programmiersprache professionell erlernen.
; 00016.13922:Und deshalb bin für jede Hilfestellung dankbar. Wenn Du das nicht mehr tun kannst, respektiere ich das, und es ist gut.
; ...

Re: Extrahieren des reinen Textes aus einer HTML-Seite.

Verfasst: 18.11.2023 14:34
von brigitte2018
Excellent und Danke!

Ich melde mich noch, Brigitte.