Wie erstelle ich einen automatiserten Mathebot?
Hallo liebe Community.
Ich habe aktuell in der Schule in Informatik eine Klassenarbeitsersatzleistung. Dazu möchte ich einen automatiserten Bettermarks Mathebot erstellen (Bettermarks ist eine online Matheaufgaben-Seite). Da meine Kenntnisse im Coden und den allgemeinen möglichkeite dazu leider etwas beschränkt sind, habe ich das Internet und ChatGPT zur Hilfe genommen.
Daraus ist mein aktueller Plan entstanden: Durch das drücken der Taste F6 oder eine andere z.B. soll alles gestartet werden. mit BeautifulSoup wird der HTML Code des aktuellen Tabs (Bettermark) auf die mathematische Fragestellung, wenn vorhanden ein Bild und auf die Antwortfelder bzw. die Schaltfläche zum ankreuzen der richtigen Antwort, untersucht und herausgefiltert.
Diese Text und eventuelle Bilddaten werden dann an die Wolfram alpha API gesendet und von der ausgewertet. Das Ergebnis muss so formatiert/strukturiert sein, dass Selenium weiß, in welches Antwortfeld welche Zahlen… kommen und welche Schaltfläche angesteuert werden müssen. Das richtige Ergebnis witd dann automatisch eingetragen werden.
Meine Frage jetzt an euch: Wisst ihr ob das so funktioniert und habt ihr vllt. sogar bessere Lösungsvorschläge? Den ganzen Code würde ich mir dann von so KI Codegeneratoren machen lassen. Das Projekt ist auch mit meinem Lehrer abgesprochen.
1 Antwort
BeautifulSoup für HTML-Parsing
Mit BeautifulSoup kannst du den HTML-Code der Bettermarks-Seite analysieren und die Fragen sowie die Antwortmöglichkeiten rausholen. Allerdings nutzen viele Websites, darunter wahrscheinlich auch Bettermarks, dynamische Inhalte. Das heißt, manchmal wird der Inhalt erst durch JavaScript geladen. In solchen Fällen ist BeautifulSoup alleine nicht genug. Hier kommt Selenium ins Spiel.
Selenium für Web-Automatisierung
Selenium ist super, um im Browser Aktionen wie Klicken oder Texteingaben zu automatisieren. Es kann die Seite so laden, wie ein echter Benutzer das tun würde, und du kannst damit auch dynamische Inhalte abrufen. Du solltest also zuerst mit Selenium die Seite steuern und dann die Inhalte mit BeautifulSoup auswerten.
Wolfram Alpha API
Die Wolfram Alpha API ist klasse, um mathematische Fragen zu beantworten. Du musst die Fragen jedoch so formulieren, dass die API sie versteht. Manchmal wird das Ergebnis nicht in einem Format zurückgegeben, das du direkt in die Antwortfelder eintragen kannst. Da könnte es nötig sein, die Antwort vorher anzupassen.
Rechtliche Aspekte
Ein wichtiger Punkt ist, ob es erlaubt ist, Bots auf Bettermarks zu benutzen. Viele Websites haben in ihren AGB Regeln, die gegen das Scrapen oder Automatisieren sprechen. Das kann dazu führen, dass dein Account gesperrt wird. Schau dir also die AGB von Bettermarks an oder frag nach, ob das, was du vorhast, erlaubt ist.
Verbesserungsvorschläge
Scrapy statt BeautifulSoup
Wenn du viel mit Daten arbeiten willst, könnte Scrapy eine bessere Wahl sein. Es ist leistungsfähiger und eignet sich gut für komplexere Seitenstrukturen.
OpenCV oder Tesseract für Bilder
Wenn in den Aufgaben Bilder drin sind, kannst du mit OpenCV oder Tesseract (für Texterkennung) arbeiten, um den Text aus Bildern zu ziehen und an die Wolfram Alpha API zu schicken.
Fehlerbehandlung
Bei der Automatisierung solltest du auch daran denken, wie du auf mögliche Fehler reagieren kannst. Websites ändern sich manchmal, und es kann auch mal sein, dass die API nicht wie erwartet antwortet. Eine gute Fehlerbehandlung ist also wichtig.
Captchas und Bot-Erkennung
Viele Websites setzen Captchas ein, um Bots zu erkennen. Wenn Bettermarks sowas hat, könnte dein Bot Probleme bekommen. Das wäre ein weiterer Punkt, den du im Hinterkopf behalten solltest.
Zusammenfassender Ablauf
1. Mit Selenium startest du den Browser und lädst die Bettermarks-Seite.
2. Die Seite wird geladen und du nutzt Selenium, um den HTML-Inhalt mit BeautifulSoup zu analysieren.
3. Falls die Frage ein Bild hat, kannst du OpenCV oder Tesseract verwenden, um den Text zu extrahieren.
4. Die Frage wird dann an die Wolfram Alpha API geschickt.
5. Die Antwort wird aufbereitet und in die richtigen Felder eingetragen.
6. Schließlich füllt Selenium die Felder automatisch aus und klickt auf "Abgeben".
Fazit
Das Projekt hat echt viel Potenzial, aber du musst die rechtlichen Dinge und technische Herausforderungen im Auge behalten. Es könnte auch eine super Gelegenheit sein, mehr über Webautomatisierung und API-Nutzung zu lernen! Wenn du noch Fragen hast
oder weitere Ideen brauchst, sag einfach Bescheid!