Einen Web Bot mit Python und Selenium erstellen

Web Bot Darstellung

Ein Web Bot ist ein Programm oder Skript, welches automatisch Aufgaben bearbeitet die sich oft wiederholen, wie zum Beispiel Preise von einem Onlineshop auslesen und in einer Datenbank speichern. Damit kann man Preisänderungen verfolgen oder darstellen und gegebenenfalls die Waren zum richtigen Zeitpunkt einkaufen.

Was braucht man um einen Web-Bot zu machen?

Um einen simplen Web-Bot zu schreiben braucht man folgende Dinge:

  • Browser
  • Webdriver
  • Python
  • Selenium-Modul
  • Bot-Code

Was ist ein Webdriver?

Ein Webdriver ist ein Steuerungsprogramm für den Browser. Damit kann man die Aktivitäten die man am Browser macht, automatisieren. Zum Beispiel „rufe die URL http://www.google.com auf“ oder „Zeige mir den Quelltext der aktuellen Seite“. Weiters kann man Javascript-Code live einspeisen oder den DOM-Elemente suchen wie zum Beispiel Links mit einem bestimmten Linktext.

Für die gängisten Browser existieren die notwendigen Driver. Diese müssen nicht installiert werden sondern sind ein eigenständiges Programm und funktionieren unter Windows auch ohne Administrationsrechte.

Download für die gängigsten Browser

Webdriver für Firefox
Webdriver für Chrome

Wie fange ich mit dem Web Bot an?

Nachdem das Selenium Modul installiert wurde kann nun mit der eigentlichen Abeit begonnen werden.

Dazu legt man sich am besten ein neues python-File an und gibt folgende Zeilen Code ein:

from selenium import webdriver

# Neue Instanz erzeugen mit Firefox
driver = webdriver.Firefox()
# zu Google navigieren
driver.get("http://www.google.com")
# den aktuellen Titel der Website auslesen
print(driver.title)
# driver wieder schließen
driver.quit()

Wenn alles funktioniert hat, wird der Browser gestartet, zu Google navigiert und der Title ausgelesen. Desweiteren gibt es noch unendliche Möglichkeiten, dazu empfehle ich aber die Dokumentation bei Selenium selbst zu lesen.

Wichtig ist das der Webdriver im gleichen Verzeichnis liegt wie das Python-Script. Bei mir hat es nämlich nicht funktioniert, da der Webdriver wo anders gelegen war. Alternativ kann man auch den Pfad zum Webdriver im Code angeben und mit dieser Zeile:

driver = webdriver.Firefox(executable_path=r'C:\webdriver\geckodriver.exe')

Zum Beispiel kann man die Suchposition der eigenen Domain bei Google auslesen  und in einer Datenbank speichern.

Dreidimensional ins Web – WebGL mit Three.Js

WebGL und Three.js wird in Zukunft immer beliebter. Three.js ist eine offene Javascript Umgebung die auf WebGL basiert und welche es ermöglicht einfach 3D Modelle zu erstellen, laden oder sogar zu manipulieren.

Um die Bibliothek zu testen wurde von mir eine kleine Testseite erstellt, welche das aktuelle Wetter in Salzburg mit einfachen 3D Modellen wie Wolken, Sonne und Regentropfen visualisiert. Natürlich gibt es unendlich weitere Möglichkeiten was man alles mit dieser Bibliothek machen kann.

Weiters ist es relativ einfach möglich mit Blender ein Modell zu exportieren, um es dann über Three.js und ein paar Zeilen Code laden und z.B. rotieren lassen kann.

WebGL Würfel mit Hello World darauf
3D im Browser

Es ist sogar möglich Spiele oder interaktive Musikvideos zu gestalten und damit ganz neue Wege des Webs zu erschaffen. Interessant wird wie sich diese neue Dimension in den nächsten paar Jahren weiter entwickeln wird.

Zukünftig könnte man ja dann auch Augmented Reality Anwendungen dafür erstellen, wie z.B. bei einem Optiker wo eine dreidimensionale Betrachtung des Produktes am Kopf des Kunden möglich wäre.

WebDAV unter Apache und Windows7 einrichten

Cloud Darstellung mit PCs und Smartphone

Da ich unbedingt eine Alternative zu Dropbox suchte (fast schon selber programmieren wollte), bin ich über ownCloud auf die WebDAV-Anbindung gekommen. Da mir aber ownCloud nicht zugesagt hat, hab ich dann entdeckt, dass man sich auf einem Apache Server auch einen reinen WebDAV Zugang ohne extra PHP Skripte o. ä. einrichten kann.

Das ist natürlich optimal, da es simpel ist und das Protokoll von so ziemlich jedem Gerät (Smartphones) und Betriebssystem (Windows, Linux, iOS) unterstützt wird. Das Protokoll ist ähnlich wie HTTP aufgebaut, jedoch hat es noch zusätzliche Features.

Leider ist es etwas komplizierter, den WebDAV Zugang zu konfigurieren. Zu beachten zum Beispiel ist, dass Windows7 bei dem AuthType Basic Probleme macht, jedoch beim AuthType Digest nicht.

Man muss das Modul mod_dav im config-File aktivieren.

Links
WebDAV einrichten auf heise.de