Webseite automatisch herunterladen und analysieren

Simcrack

Lt. Junior Grade
Registriert
März 2011
Beiträge
392
Hallo zusammen

Ich möchte eine Webseite, die eine Authentifizierung benötigt mit einem Konsolenprogramm (Also so, dass ich das Programm mit CMD oder PowerScript bedienen kann) herunterladen und gewisse Daten auslesen (Ein Tag mit einem id Attribut).
Leider weis ich nicht, wie ich das machen soll.
 
Hallo Simcrack,

bitte nimm es mir nicht übel, aber bist du dir sicher, dass du das, was du machen willst überhaupt kannst, wenn du nicht mal weißt wie du an dein Untersuchungsmaterial herankommst oder richtig nach einer hilfe googeln kannst?

Musst du die Website wirklich mit per console downloaden? Unter Windows:
kannst du z.B. mit WinHTTrack eine website komplett downloaden.
 
Zuletzt bearbeitet:
Kann man relativ einfach mit einer Programmiersprache realisieren. Java, Python, Perl, PHP, C++, C#... Mit nahezu allen Sprachen könnte man es umsetzen.
 
Das weis ich, ich möchte das aber mit einem Kommandozeilen Programm lösen.
Und ja, ich weis, dass ich auch selber ein Kommandozeilentool programmieren könnte :-).
Aber das wird doch irgendjemand vor mir gelöst haben?
 
Du musst schon etwas genauer sagen was du machen möchtest. Momentan steht die Frage im Raum:

Kann mir irgendjemand irgendein tool empfehlen mit dem ich ein website per console downloaden kann um irgendwelche daten auszulesen?

Da kann man schwer antworten oder tipps geben.
 
Vielen Dank für die schnellen Antworten
ich habe eine Konsolenversion von WinHTTrack für die Konsole gefunden (war ja eigentlich nicht schwer, wenn ich WinHTTrack gekannt hätte). Sieht grundsätzlich gut aus.

Es geht um eine Webseite (Sensor), die einen Wert liefert. Um diesen Wert zu sehen, muss man sich allerdings zuerst anmelden. Den Wert selbst ist in einem HTML-Tag mit einer eindeutigen Id.
 
Zuletzt bearbeitet:
ah, alles klar! Gern geschen :-) viel Freude mit dem Httrack :-)

Gruß
config
 
Es wurde ja schon gesagt, dass dies in vielen Programmiersprachen auf mehreren Wegen gelöst werden kann. Wie man das möglichst unkompliziert mit PHP machen könnte, kann ich dir in wenigen Sätzen erklären:

1.) Obwohl SimpleTest eigentlich ein Unit Tester für Entwickler ist, lassen sich die Klassen auch gut für andere Zwecke verwenden. So kann man damit auf einer Webseite "surfen", Eingabefelder ändern und Formulare absenden. Mit diesem Lösungsweg reichen schon ein paar Zeilen Code, um sich auf einer Internetseite einzuloggen und danach den HTML Sourcecode einer anderen Seite abzurufen. Der Code ist vergleichsweise übersichtlich und einsteigerfreundlich, denn man muss nicht manuell HTTP-Header basteln.
2.) Sobald man die Webseite, in der die gewünschten Daten vorhanden sind, aufgerufen hat, kann man diese mit einem regulären Ausdruck extrahieren. Zum Beispiel preg_match('%<div id="thisid">(.*?)</div>%i', $html_source, $results)
3.) PHP funktioniert auch als Kommandozeilen-Interpreter, egal ob auf Windows (php.exe) oder auf Linux-basierten Systemen. Man muss das Skript also nicht zwangsläufig im Browser ausführen und hat zudem die freie Wahl, was genau mit der Ausgabe gemacht werden soll -. ob eine direkte Ausgabe an die Kommandozeile gewünscht ist oder ob in eine Datei, Datenbank, etc geschrieben werden soll.


Alternativ, wenn du mit HTTRack zufrieden bist, kannst du auch findstr oder eine grep.exe (aus den Gnu Utils) verwenden, um die Ausgabe einer Datei zu filtern.
 
Kannst du die Datenquelle umschreiben? Dann lass sie doch die Daten in einem anderen Format zurückgeben, z.B. als JSON oder XML, sobald ein von dir definierter Useragent erkannt wird.
 
Zurück
Oben