Amazon Preise beobachten

Nachdem Amazon Preise sich bekanntlich gerne häufig mal ändern (und es auch heißt dass diese je nach Gerät welches die Seite aufruft unterschiedlich sind) wollte ich das mal beobachten.

Als allererstes nehme ich mir eine beliebige Amazon-URL:

http://www.amazon.de/Coffee-go-Igel-mit-Herz/dp/B007NHZMKQ/ref=sr_1_2?ie=UTF8&qid=1455108745&sr=8-2&keywords=igel

Entferne die Such-Informationen um nur den Produktlink zu haben:

http://www.amazon.de/dp/B007NHZMKQ

Und nun hänge ich an die Produktnummer den Link für Mobilgeräte dran – denn diese Seite lässt sich erheblich leichter parsen weil viel SchnickSchnack nicht mit drin ist:

http://www.amazon.de/gp/aw/d/B007NHZMKQ

Diesen Link lasse ich nun von einem kleinen Python-Script parsen – der Link ist der Aufrufparameter an das Script:

#!/usr/bin/python3
import requests
import sys

textvorpreis = r'<b>Preis:</b>&nbsp;EUR '
textnachpreis = r'&nbsp;<br'

if len(sys.argv) > 1:
   preisurl = sys.argv[1]
   
   webpage = requests.get(preisurl)
   preispos = webpage.text.find(textvorpreis)
   preispos = preispos + len(textvorpreis)
   
   endpreispos = webpage.text.find(textnachpreis, preispos)
   preis = webpage.text[preispos:endpreispos]
   preis = preis.replace(',', '.')
   
   print("Preis: " + str(preis))
else:
   print("Parameter 1 is URL.")
   print("Example: http://www.amazon.de/gp/aw/d/B00QQCGZ50")

Aufruf erfolgt nun so:

getpreis.py http://www.amazon.de/gp/aw/d/B007NHZMKQ

Und schon steht das Ergebnis da:

getpreis

In meiner Version schreibt das Script die Preisdaten in eine simple Mysql-Tabelle und wird per Cronjob alle 15 Minuten aufgerufen.

Und jetzt warten wir mal ab was Amazon so mit den Preisen meiner Wunschartikel macht 🙂

Hier gibts das Script

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.