Seitenquelltext runterladen



  • Hallo,
    wie kann ich den HTML-Quelltext einer Internetseite runterladen um ihn zu untersuchen ?
    wxWidgets bietet zwar wxFSFileSystem, aber damit kriege ich es nicht hin.

    wxFileSystem *fileSystem = new wxFileSystem;
    wxFSFile *file;
    char buffer[1001];
    
    file = fileSystem->OpenFile("http:\\www.google.de\\index.html");
    if (file)
    {
        wxInputStream *stream = file->GetStream();
        if (stream->IsOk())
        {
            if (stream->CanRead())
            {
                stream->Read(buffer,1000);
                buffer[1001]='\0';
            }
        }
    }
    

    Er bricht konsquent bei

    if (file)
    

    ab, ich vermute mal weil das ja kein Filename ist der auf .html endet. Aber woher weiss ich wie die Startseite eines Servers heisst ?



  • Dank Google habe ich vermutlich eine Lösung gefunden: libcurl.
    Aber beim Versuch die einzubinden (statisch, keine dll) habe ich bei 3 Versionen der Lib das gleiche seltsame Phänomen: Er findet die Funktionen in der Lib nicht.
    D.h. es kommen Meldungen wie:
    error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__curl_easy_cleanup

    Den Beispielcode habe ich von der Website, der sollte also stimmen.
    Zunächst einmal dachte ich er würde die lib nicht finden, also habe ich sie auf der Festplatte verschoben. Dann bringt er die Meldung dass er die Lib nicht findet. D.h. wiederum dass er sie ja auch einbindet wenn sie im richtigen Verzeichnis liegt. Aber warum findet er dann die Funktionen nicht ?





  • Hmm also wenn du wirklich nur den Inhalt einer Seite brauchst dann würde ich an deiner Stelle statt libcurl lieber Sockets verwenden, einen HTTP-Request senden und den Inhalt der Seite empfangen.

    Für diese simple Aufgabe extra eine Bibliothek zu verwenden ist wohl doch zu viel des guten 🙂



  • aber wenn man von Netzwerkprogrammierung nun mal so gar keine Ahnung hat (komme aus dem Microcontrollerbereich).... schier unlösbar 🙂
    Anyway, die WindowsLib Urlmon.lib hat eine passende Funktion bereits dabei.
    Problem gelöst



  • wtf lol
    Ein #define hätte gereicht wie im anderen thread beschrieben dann wäre es auch mit statischer linkage gegangen.. aber bitte.. 😛



  • LOL, jede Menge schlaue Ratschläge, aber das sieht keiner von den schlauen Ratschlaggebern:

    char buffer[1001];
    ...
    	buffer[1001]='\0';
    

    :p



  • Weil das nicht das Problem war :p. ich hab erst ab dem 2ten Beitrag reingeschaut.



  • Scorcher24 schrieb:

    Weil das nicht das Problem war :p. ich hab erst ab dem 2ten Beitrag reingeschaut.

    Da hab ich aber auch schon bessere Ausreden gehört. 😉
    Du hast dir also gar nicht durchgelesen um was es eigentlich geht? Noch schlimmer.



  • Den Text aber nicht den Code...



  • Scorcher24 schrieb:

    Den Text aber nicht den Code...

    me2

    Nur gelesen was er will und hab halt in dem Moment schon im zweiten Post das Wort "libcurl" entdeckt, wollte
    nur sagen das es für so eine simple Aufgabe keine zusätzliche Bibliothek braucht.

    Hat mich halt an eine gleiche Frage ( ohne Code ) in einem anderen Forum erinnert, der ich die selbe Antwort gegeben habe

    Sehr wahrscheinlich wäre mir dieser Fehler nicht aufgefallen 💡


Anmelden zum Antworten