# Einen Bot Programmieren.



## EgoCode (13. Jan 2019)

Guten Tag,
vor einigen Tagen habe ich mich gefragt wie Bots funktionieren die Automatisiert bestimmte Vorgänge auf einer Website ausführen. Seitdem kribbelt es mir in den Fingern so etwas selbst zu schreiben. Zum einen aus Spaß an der Sache, zum anderen weil es mich einfach brennend interessiert wie das Umgesetzt wird. Allerdings habe ich, wie gesagt, keine Vorstellung davon wo ich Anfangen soll.

Kurz zu mir und was ich bereits kann: Ich habe noch nicht so viel Erfahrung in der Entwicklung allerdings bin ich lernbereit und Hungrig! Ich habe bereits in C und in Java programmiert und kenne und verstehe grundlegende Konzepte vom OO Design und prozeduraler Programmierung und GUI entwicklung. Ich kenne auch die Bausteine von HTML und CSS. Außerdem kenne und verstehe ich die gängigsten Sortieralgorithmen und Datenstrukturen.

Was mein Ziel ist: Ein "Bot" der Automatisch eine Website aufruft und das Verhalten einer realen Person simuliert. Dort soll er die Website nach bestimmten Inhalten absuchen(Texte, Bilder etc). Er soll automatisch Formulare ausfüllen können(Z.b. automatisch einen neuen Account anlegen). Er soll bestimmte Aktionen ausführen können(z.B. "Zu warenkorb hinzufügen" "Kommentar schreiben"). Außerdem soll Vorgänge Überwachen/protokollieren können(z.B. "Der preis Betrug um 10:12 x$, und um 11:23 y$).

Zu meiner Frage: Kann ich das ganze in Java Realisieren? Gibt es da eine Bibliothek die mir Schnittstellen bietet damit ich auf Webinhalte zugreifen kann?
Ich habe auch im Internet schon versucht einen Ansatz zu finden. So wie ich das verstanden habe wäre eine eine Sprache wie Python, JavaScript oder Ruby am besten geeignet um so etwas zu realisieren. Aber wieso? Was könntet ihr mir empfehlen damit ich das Programm tatsächlich umsetzen kann, evtl hat jemand bereits Erfahrung mit sowas und kann mir einen Ansatz geben. Sollte ich doch Python/JavaScript/Ruby dafür lernen. Evtl Stichwörter zu Programmiertechniken etc. zu denen ich mich einlesen sollte.

Vielen Danke für eure Zeit!
Grüße, E


----------



## httpdigest (13. Jan 2019)

Selenium


----------



## JuKu (13. Jan 2019)

Naja, du müssten den Webseiten-Quelltext halt parsen und dir die Informationen rausziehen.
Und bei Formularen halt dann nen GET/POST-Request absetzen.
Eine komplexe Browsersimulation brauchst du dafür eig. nicht, solange die Webseite direkt ausgeliefert und nicht erst von JS nachgeladen wird.


----------



## daybyter (18. Jan 2019)

Schau mal nach jsoup. Das ist gut zum Verarbeiten von Webseiten.


----------



## Xyz1 (18. Jan 2019)

daybyter hat gesagt.:


> Schau mal nach jsoup


jsoup ist aber kein "Bot". 



EgoCode hat gesagt.:


> Gibt es da eine Bibliothek die mir Schnittstellen bietet damit ich auf Webinhalte zugreifen kann?


Wie von @httpdigest beschrieben kann mit Selenium der Browser "angezapft" werden. 

Der Suchbegriff: headless browser automation in java


----------



## Tubiantor (22. Jan 2019)

JSoup ist zwar kein Bot aber es lässt dich den gesamten HTML-Code anschauen und diesen auch mithilfe von Javascript verändern.


----------



## Xyz1 (22. Jan 2019)

Tubiantor hat gesagt.:


> JSoup ist zwar kein Bot aber es lässt dich den gesamten HTML-Code anschauen und diesen auch mithilfe von Javascript verändern


einer Programmiersprache Deiner Wahl mit Ausnahme von JavaScript, fixed


----------

