Wie scrape ich das(Python-Selenium)?

2 Antworten

Von Experte Hanibal545 bestätigt

Du hast Glück, dass das nicht einfach Code ist, der serverseitig in ein Bild umgewandelt wird, sondern stattdessen maschinenlesbar ist.

Es handelt sich um MathML, wie aus dem Sourcecode der Siete hervorgeht:

http://www.w3.org/1998/Math/MathML

Mit etwas Glück findest du ein Programm im Internet, dass es dir erlaubt, damit umzugehen, wie du es gerne möchtest.
Selber dafür einen Parser schreiben ist eher nicht anzuraten, das habe ich schon einmal versucht und das Ergebnis war nicht sonderlich schön. Das wäre auch mit einem Parser-Generator nicht sonderlich schön, da die Sprache Mengen und anderes Zeug enthält, dass sich pragramatisch nur bedingt umsetzen lässt.

Aber wenn du das einfach nru anderswo anzeigen möchtest, findet sich wahrscheinlich Software, die das kann, oder du kannst das evtl. direkt den Browser machen lassen, wie es dir Seite auch macht, denn offenbar (wusste ich vorher auch nicht), kannd er mit MathML umgehen.

Max1236 
Fragesteller
 24.09.2022, 12:27

Danke! Hat mir schon sehr weitergeholfen.

Ich werde mal schauen ob ich was finde was dann das MathML in einen Text umwandelt. Mal schauen ob klappt

2
Destranix  24.09.2022, 12:40
@Max1236

Also in Text wirst du das nur beschränkt umwandeln können, denn es ist ja kein Text, sondern eine Formel.

1
das ich den Text oder was auch immer das ist nicht gescrapt bekomme.

Du musst doch wissen was du willst.

Text oder etwas anderes.

Was ist es denn?

Eine Bitmap ?

Wir können ja nicht wissen was du hast und was du genau willst.

Der Bezug zum Python in deiner Frage ist jedenfalls nicht klar

Max1236 
Fragesteller
 24.09.2022, 11:59

Dank der Antwort oben weiß ich jetzt schon mal das es MathML ist.

Das Ziel ist, diesen Term in eine Variable im Python Programm zwischen zu speichern. Allerdings weiß ich halt nicht wie ich da rangehen soll 😅

2
Destranix  24.09.2022, 12:41
@Max1236

Dann würde ich einfach das MathML als ganzes (oder ohne den Display-Teil, falls vorhanden) kopieren.

Was du dann damit anstellst hinge von der weiteren Verwendung ab.

2
Max1236 
Fragesteller
 24.09.2022, 12:53
@Destranix

Hab gerade den HTML Code durchgeschaut. Wo findest du das MathML den immer?

1
Destranix  24.09.2022, 12:57
@Max1236

Rechtcklich auf das Element und "Untersuchen". Ist bei mir unter ID "content" in einem Element mit Klasse "exercise_question".

Wohlgemerkt: Da nur manche Browser MathML unterstützen könnte ich mir vorstllen, dass das unter anderen Browsern nicht ausgeliefert wird. Unter Chrome verwendet das bei mir mjx statt MathML, entsprechend würde ich schauen, dass ich das so anfrage, dass ich MathML bekomme, wenn das nicht automatsich geschieht.

1
Max1236 
Fragesteller
 24.09.2022, 13:01
@Destranix

Okay, verstanden. Ich arbeite da ja mit Selenium. Wie kann ich jetzt das MathML kopieren(scrapen). Gibt es da eine extra Funktion?

1
Destranix  24.09.2022, 13:04
@Max1236

Müsste man genauer untersuchen, wann das Programm entscheidet, dir da mjx statt MathML zu geben.
Was du mal ausprobieren könntest wäre, den User-Agent zu faken, sprich einen anderen als den tatsächlichen an den Server zu schicken, um diesem vorzugauckeln, dass du Firefox nutzt.

Wenn das nichts bringt, dann wird das wohl clientseitig im Javascript-Code entschieden. Da müsste man dann schauen, wie man am besten die Seite täuscht.

1
Max1236 
Fragesteller
 24.09.2022, 13:07
@Destranix

Ich schau mal wie weit ich komme und schreibe dir im Notfall wenn nichts mehr klappt wenn das okay ist. Vielen Dank aber schon mal

1