[BASH] Daten aus dem Internet abrufen (cURL/wGet etc.)

MrTony

Lieutenant
Registriert
Feb. 2015
Beiträge
655
Hi zusammen.

Ich hab mir ein kleines Script gebaut, dass mir täglich ein paar mal den Preis für Hardware, die mich interessiert aus dem Internet abruft. Die Daten packe ich in eine Datenbank und will sie später auch als Chart anzeigen lassen, damit ich die Preisentwicklung über einen Monat oder länger hinweg nachvollziehen kann.

Zum abrufen benutze ich cURL oder Wget. Auf einer Testseite und auf Mindfactory funktioniert das auch gut.
Aber ich wollte gern auch die Preise auf mehreren Seiten im Auge haben und darum wollte ich zum Beispiel auch noch Notebooksbilliger etc. einbinden. Einige Seiten machen da aber Probleme und wollen anscheinend nicht automatisch ausgelesen werden. Dort werde ich immer an einen Captcha weitergeleitet. Über einen ColdFusion-Dienst auf meiner Arbeit konnte ich es lösen, indem ich den Useragent gespooft habe und auch direkt den HTTPS-Port angesteuert habe.

Zu Hause habe ich aber keinen ColdFusion-Server, sondern einen Ubuntu-Server mit dem bereits vorhandenen Bash-Script.
Weiß jemand, wie ich dieses Problem mit Bash bzw. Linux allgemein lösen kann? Eine öffentliche API gibt es für die weiteren Seiten, die ich einbinden will, leider nicht so weit ich weiß.
 
Schick mal bitte eine Beispiel url die du Abrufen (curl / wget) möchtest.
UserAgent mit angeben würde ich immer machen.
In welchen Intervall lädst du die Seiten? Möglicherweise triggert ein zu häufiger / schneller Reload die Captcha - Funktion.
 
Der Useragent ist, wie vieles Andere auch, auch nur ein HTTP Header, den du mit curl, wget und Co. auf einen beliebigen Wert setzen kannst.
 
Richtig aber man kann Serverseitig durchaus einstellen, was mit den jeweilige Requests entsprechend der UserAgents angestellt wird.
Mobile -> Mobile Redirect
curl / wget -> Bot vermutung, Captcha Redirect
usw ...
Deshalb setze ich mit curl immer ein useragent bekannter Browser.
 
marzk schrieb:
Schick mal bitte eine Beispiel url die du Abrufen (curl / wget) möchtest.
UserAgent mit angeben würde ich immer machen.
In welchen Intervall lädst du die Seiten? Möglicherweise triggert ein zu häufiger / schneller Reload die Captcha - Funktion.

Hier zum Beispiel der Link zum neune i7, wo ich zuletzt so übers Wochenende etc. ganz schöne Preissprünge gesehen hatte:
https://www.notebooksbilliger.de/intel+core+i7+7700k/

Aktuell lade ich die Seite noch in garkeinen Intervallen, denn schon beim ersten Versuch über cURL wurde ich direkt auf die CaptchaSeite geleitet. Später werde ich es denke ich mal so alle Stunde, oder alle halbe Stunde mal laden. Das sollte aber kein Intervall sein, mit dem die Webseite Probleme hat.
 
Letztlich hast du dir deine Frage doch selbst beantwortet. Im ColdFusion Server setzt du den useragent... dann mach das doch mit curl/wget auch. Verstehe jetzt nicht so ganz, wo wirklich das Problem liegt? ^^

Code:
curl -A "USERAGENT_STRING_GOES_HERE" ...
Code:
wget -U "USERAGENT_STRING_GOES_HERE" ...

Eventuell schauen die sich auch noch andere Header an, um mögliche Skripte zu entdecken. Das müsstest du dann ausprobieren.
 
Zurück
Oben