Text Parser Unterschiede

Hallo zusammen,

ich versuche gerade aus einem HTML Code mir diverse Textteile heraus zu parsen.

Ich fange mit der Regel „Text abschneiden vor“ →

<span class=„fs-2 font-weight-bold“
Im Debug steht dann Rule 1 failed.

Wende ich aber in der Regle "<div class=„h2 mt-3 mb-0 my-md-3 font-weight-bold“ diesen Text an ist alles in Ordnung.

Was ich nicht verstehe ist, es ist doch ein Textparser der doch rein Text basierend sich Texte heraus trennen kann etc.

Wo liegt in der Regel der Unterschied bzw. was mache ich hier falsch ?

Gruß

Hallo mactools,

gibt es denn „Zeichen“ vor <span class=„fs-2 font-weight-bold“ ?
Ist nur so eine Idee …

Ein schönes Wochenende
lueralba

Hi,

ist der Quellext von einer HTML-Seite und alles was davor ist bis zu dieser bestimmen Seite möchte ich erstmal alles abschneiden.

Gruß

Ich habe früher gerne den „Debug“ im Parser genutzt um Fehler zu finden.
Vllt. kommst Du damit etwas weiter ?

Oder doch ein Bug …

LG
lueralba

Hi,

das habe ich versucht. Man sieht den vollständigen Receive String und dann kommt die Meldung Failed Rule 1 – > Länge 6.

Gruß

Vielleicht verstehe ich die Frage falsch, aber mal ganz banal geschaut:
hier steht ein „fs-2“ im String, das in deiner anderen Regel dort nicht steht.

ich habe gestern auch verzweifelt versucht den Text-Parser mal wieder zu nutzen und komme IMMER auf das Rule1 failed, selbst bei einer ganz einfachen Seite mit nur ~20 Zeichen um die 36 auszuschneiden

<!DOCTYPE html>36</html>

Sicher, dass es nicht irgendwelche Sonderzeichen gibt, die nicht sofort erkennbar sind? Oder Umlaute die nicht UTF-8 kodiert sind, können auch Schwierigkeiten machen

Versucht mal was „simpleres“ abzuschneiden, falls die volle Zeichenkette nicht geht.

paresy

also ich habe gestern bestimmt 4 std. damit zugebracht, etwas auszuschneiden. Meine anderen Textparser funzen einwandfrei. Es kann also wirklich nur an den Zeichen liegen, dass da irgendwas nicht passt.
Gerade noch mal einen neuen angelegt und mit funktionierenden Daten befüllt: läuft einwandfrei
das Problem sitzt vorm IPS :grin:

Hi,

was meinst du mit neuen angelegt ?

Gruß

einen Parser, der html-client arbeitet ja lt. Debug ordentlich

Hi,

was heißt das, das deine Parserinstanz defekt war ?

nein, die war in Ordnung. Die Seite lässt sich einfach nicht parsen, wohl zu einfach:

<!DOCTYPE html>36</html>

ich wollte nur die 36 in eine Variable schreiben
also

Text ausschneiden zwischen: <!DOCTYPE html> und: </html>

geht da komischerweise nicht, vllt wegen dem html ?

ja und nun ?

Ich hatte auch bis dato einen Parser eingesetzt, jetzt muss ich die Seite neu zerlegen und aktuell klappt es nicht mehr.

Da ist jetzt die Frage ob im Parser ein Problem vorliegt ?

Ich benutze schon lange folgende Funktion, ist auch irgendwo im Forum und habe ich noch etwas angepasst. Damit parse ich „alles“.

// Diese Funktion trennt die relevanten Bereiche aus dem Ausschnitt heraus $string ist dabei der zu durchsuchende Gesamtstring,
// in $Mark sind durch "*" getrennt der Beginn des zu suchenden Strings und das Ende des zu suchende Abschnittes. Beispiel für den Text "<div>*</div></li>"
function get_mark($string,$mark) {
	$ausgabe = array();
	$template = explode("*",$mark);
	$mark = $template[0];
	$end = $template[1];
	$string = strstr($string,$mark);
	$temp = explode($mark,$string);
	$a = 1;
	foreach ($temp as $tempx) {
		$tempx = explode($end,$tempx);
		$tempx = $tempx[0];
		if ($tempx) {
			array_push ($ausgabe,$tempx);
		}
	}
	return $ausgabe;
}

Beispiel Aufruf mit dem vorher geholten HTML (file_get_contents oder teilweise inzwischen CURL) in $Antwort

$datum = get_mark($Antwort, '<h4>*</h4>');

Die Elemente zum Filtern sollten eindeutig sein, sonst kommt ein Array zurück.

1 „Gefällt mir“

Hi,

besten dank für das Script. Hatte ich auch schon darüber nach gedacht mir selber ein Script zu entwickeln, frage ist aber tatsächlich warum die Textparser im ersten Moment den Anschein haben nicht zu funktionieren.

Ist natürlich viel schöner eine Instanz zu haben wenn man mit viel mehr irgendwelche Datenstreams arbeitet.

Danke und Gruß

doch, sie (Parser) funktionieren, ich hatte einen funktionierenden in einem Neuen nachgebaut und es hat sofort geklappt.

Sorry das kapier ich nicht, was war denn falsch ?

Warum hast du denn die Parser nachgebaut ?

Haha, die habe ich auch so!!!

um zu testen ob es vllt am Parser liegt ? Fehlerausschlussverfahren ?!