HTML-Seite aus dem Internet downloaden!



  • Hey Jungs und Mädels(?),
    mich interessiert, wie ich eine Seite/Datei von einem Webserver herunterladen kann in C/C++. Ich habe schon ziemlich viel gesucht, auch schon in anderen Foren, allerdings habe ich irgendwie noch nichts passendes gefunden. Ich habe es auch schon hinbekommen mit dem erstellen eines .vbs-Scripts, aber das ist nicht so schön und vorallem braucht man dazu zu viele andere Dateien. Die andere Möglichkeit, nämlich n Shellexecute auf ne HTTPGET.exe, tut auch, aber wie gesagt... es muss doch auch ohne dreitte Programme gehen 🙂
    Danke für eure Hilfe.
    Cya Moe



  • Informier dich über Sockets (je nach Plattform) und das HTTP Protokoll.

    grüße



  • Hab sowas zwar fertig irgendwo rumliegen, aber wir wollen hier ja nicht komplette Lösungen verteilen. 🙂
    Erstmal beschäftigst du dich mit der Socketprogrammierung und dann solltest du dir ansehen wie HTTP funktioniert:
    http://www.google.de/search?q=Socketprogrammierung+C%2B%2B
    http://www.ietf.org/rfc/rfc2616.txt

    Vielleicht hilft dir auch das hier ein wenig weiter:
    http://www.fh-wedel.de/~bek/c/praktika/seminar-iaws0506.html
    Da findest du eine GET-Anfrage die du an den Server senden musst, anschließend musst du mit recv (s. Socketprogrammierung) die Antwort lesen.

    Hoffe das hat geholfen.



  • nimm lbicurl:
    http://curl.haxx.se/



  • Grml, ok, befass' ich mich damit :P:P:P Nein, SPaß bei Seite. Hab noch n bissle weitergesucht und herausgefunden, dass das wohl irgendwie auch ohne direkte Socket-Programmierung gehen muss. (An der soll's net scheitern, ich hab mir grad n kleines Chat-Programm geschrieben... also als Grundlage sollte das reichen).
    Was haltet ihr davon? Ich hab halt nur noch eine Millionen Linker-Fehler...

    #include <cstdlib>
    #include <windows.h>
    #include <Wininet.h>
    #include <iostream>
    
    using namespace std;
    
    void getit();
    
    int main()
    {
        getit();
        getchar();
        return 0;
    }
    
    void getit()
    {
     char output[5000];  //Hier steht nachher der Inhalt der Datei... oder auch nicht ;)
     HINTERNET hInternetBr =InternetOpen(
                "Moe's 1337-Browser",
                INTERNET_OPEN_TYPE_PRECONFIG,
                NULL,
                NULL,
                0);; 
     HINTERNET hFile; //<-- kP, was das fürn Datentyp ist, bitte, klärt mich auf!
    
     hFile = InternetOpenUrl(
                hInternetBr,
                "http://mitglied.lycos.de/kampfhasenkiller/index.html",
                NULL,
                0,
                INTERNET_FLAG_NO_CACHE_WRITE,
                0);
    
     while(1)
      {
       char buffer[100]; DWORD ReadSize=1;
       ReadSize = 1;
       bool bResult = InternetReadFile(
                hFile,
                buffer,
                1,
                &ReadSize);  
       if(bResult && (ReadSize == 0))
         break;
       buffer[ReadSize] = '\0';
       strcat(output,buffer);
      }
     InternetCloseHandle(hFile);
     InternetCloseHandle(hInternetBr);
     cout<<output;
    }
    


  • Hab's mir jetzt nicht angesehen, aber du musst gegen die wininet.lib linken.

    Greetz, Swordfish



  • ... danke, man. Wenn du mal herkommst, küss ich dir deinen Arsch! *fg*

    Könnt das zumachen^^



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten