Ich schlief nur kurz. Mehr Motivation heute da, sodass ich bei schönem Wetter am Computer saß. Ich kramte die alte SSDpreise.de Seite heraus und setzte mich an die Fertigstellung.
Ich habe 4 super billige shared Hosts, die ich als eigene kleine Proxy nutzen wollte. Mit dem einzelnen miniProxy Skript hätte ich 4 verschiedene Server. Ich hatte schonmal ein paar generierte Directories eingestellt. Die Sache klappte, aber dann irgendwie auch doch nicht. Ich bekam 403 Errors. Das Scrapen der discprices.com Site mit ?locale=DE hintendran schien Probleme zu machen.
Es gab eine nette Operation random.choice(), mit der Python automatisch was in einer Liste auswählt. Alle URLs in einer Textdatei und fertig war’s:
with open(proxyfile) as f:
proxylist = f.readlines()
url = str(random.choice(proxylist)).strip() + uri
Dann setzte ich mich an CSS und schließlich die Pandas. Die Originalseite hatte bspw. falsche Zuordnungen. Ein paar HDDs wurden als SSDs eingeordet. Ich löste dies, dass ich die Preise erst mal auf Float konvertierte und dann €0.06 / GB als Preisuntergrenze für SSDs nehme. Falls da was unter diesem Preis angeordnet ist, sollt es eine HDD sein. Das klappte dann auch nach einigem Hin und Her mit den dataframes.
# Convert strings to float
df[df.columns[0:1]] = df[df.columns[0:1]].replace('[\,]', '.', regex=True)
df[df.columns[0:1]] = df[df.columns[0:1]].replace('[^.0-9]', '', regex=True).astype(float)
Eine Runde joggen zum Abend und ich wurde endlich mal müde. Es gab dann auch schon das Ostergeschenkt – überaus großzügig.
Das miniProxy Script passte ich entsprechend an, dass die URLs nicht geproxied werden, weil ich die ja für die AMazon Aff. Link einfach brauche. Man konnte auch eine Start-URL eingeben, wodurch ich den Parameter weg bekam und am Ende alles klappte – auch ohne wget.
Die Site sah ganz nett aus. Das Original hatte jetzt auch noch Garantie-Zeit mit drin, was ich in meinem Code dann wegließ. Das deployment der Scripte wollte ich auch hinbekommen. Per rclone und on-the-fly config ging das am Ende auch, falls ich am PHP Script was ändern muss. Per rclone obscure konnte man auch das Passwort über’d CLI übergeben.
Gegen Mitternacht war ich endlich müde. Jetzt muss ich die cronjobs bauen und das Python Script online laufen lassen. Mit ein paar Fehlerbehandlungen, Logging wäre das endlich mal wieder eine kleine Scraping Site. Dynamische Infos zu neuen Deals wären auch cool – vielleicht per caddy Templates? Insgesamt ist Python und eben die Generierung der statischen Site per Flask freeze ganz gut. Mit 3 Sekunden für die paar Seiten ist das ausreichend schnell und eben auch komfortabel.
Es gibt viele Ideen, auch was meilisearch und ’nem News Aggregator zu basteln. Das wäre dann was für livewire / Laravel. Man darf wohl bald nur 8 Wörter zitieren… Heute wurde mal echt viel, weil ich mich nicht ablenkte. Das viele Herumspielen gestern war somit auch hilfreich. Um 0:40 mal Ende. Super!




0 Responses to “SSDpreise, Flask, Pandas, miniProxy und rclone”