[GELÖST] Webseitenquelltext herunterladen
-
http://www.daniweb.com/forums/thread77325-2.html
http://jameser.blogspot.com/2006/07/tip-7-duplicating-website-using-gnus.html
http://msdn.microsoft.com/en-us/library/96ayss4b(VS.71).aspxNochmal einige Hilfen für dich mit Lösungen zum download der Dateien.
-
Könnte es sein dass usnere Firmenfirewall den Zugriff von wget auf die Webseiten blockiert?
--2009-03-09 15:51:11-- (try: 8) http://www.heise.de/ Connecting to www.heise.de|193.99.144.85|:80... failed: Connection timed out. Retrying.
-
Die WinAPI hat auch
URLDownloadToFile
.
-
Paddre schrieb:
Weil ich es mir abgesehen von dem wget als Übung für C++ gedacht habe
Für sowas C++ zu verwenden ist aber keine allzu gute Idee, mach lieber was anderes als Übung und schreib das Downloadskript mit einem Batchscript oder in Python oä.
Is ja klasse...hab ich nur nichts von, da der Comic der veröffentlicht wird in einem bestimmten Ordner liegt, der Pfad im Quelltext festgelegt ist und die Datei mit bestimmten Wörtern benannt ist (je nach Inhalt des Comics)
Wie gesagt: Ich würde ohnehin über den RSS-Feed gehen, das ist besser zu parsen.
Was bringt mir das ganze wenn ich Windows User bin?
Auch unter Windows kann man ganz brauchbar scripten, schlimmstenfalls eben mit Python.
Die Bilder liegen in den ordnern der jeweiligen Zeichner...ich muss also lediglich an den Quelltext der aktuellen Seite rankommen und kann daraus den Speicherort des Comics parsen.
Ganz so einfach wird das idR nicht sein. Insbesondere wenn sich das Format mal ein wenig ändert oä.
Bleibt die Frage wie ich an den Quelltext rankomm (wo wir wieder am anfang wären
)
Wenn Du unbedingt C++ verwenden möchtest am elegantesten auf eine der folgenden Methoden:
- Ein Programm schreiben, das den Quelltext direkt von der Standardeingabe einliest und das dann ungefähr so aufrufen: "curl http://example.org/foo/bar/baz.html | deinprogramm" oä.
- libcurl verwenden. Mit wget und system oder popen herumpfuschen ist nicht wirklich sauber. Eigene Libraries wie libcurl oä schon.
-
Paddre schrieb:
Könnte es sein dass usnere Firmenfirewall den Zugriff von wget auf die Webseiten blockiert?
Vmtl. verwendet Ihr irgendeinen Proxy. Kann wget auch, siehe man: wget.
-
Paddre schrieb:
Weil ich es mir abgesehen von dem wget als Übung für C++ gedacht habe
Sockets in C++ sind nicht unbedingt die einfachste Übung.
Du müsstest erstmal das HTTP-Protokoll lernen (http://www.w3.org/Protocols/rfc2616/rfc2616.html), den Header korrekt parsen (Transfer-Encoding, Content-Length, Content-Type, etc.) und danach die Daten entsprechend behandeln, usw. usf.
Vorausgesetzt du möchtest die basic-socket-Funktionen wie socket(), connect(),...
(die ich persönlich bevorzuge) benutzen, wird es wohl länger als ein paar Stunden und auch länger als 5 Tage dauern.
-
Habe mir eben n bisschen die FUnktion URLDownloadToFile angesehn und die macht im Prinzip ja genau das was ich zunächst einmal will (nein ich gebe nicht auf
)
Mein Problem ist, dass ich die Parameter nicht vernünftig gefüllt bekomme:
#include "stdafx.h" #include <windows.h> #include <urlmon.h> #include <stdio.h> #include <iostream> #pragma comment(lib, "urlmon.lib") int main() { std::string url = "http://www.heise.de/index.html"; std::string filename = "D:\\test.txt"; URLDownloadToFile(NULL, (LPCWSTR) url.c_str(), (LPCWSTR) filename.c_str(), NULL, NULL); LPCWSTR fnt = (LPCWSTR) filename.c_str(); LPCWSTR urlt = (LPCWSTR) url.c_str(); return 0; }
Im Debug sieht man dass in fnt und urlt nur shit drinsteht (vieleviele weiße Quadrate
) .
Hätt ich mir schon denken können aber wie löse ich das problem? Ich habe im Internet noch nicht ein funktionierendes Beispiel gefunden. habt ihr damit schonmal gearbeitet?
Mein nächster Schritt (wenn das hier nicht funzt) wäre dann auf libcurl umzusteigen und mir das mal anzusehn. Sonst hätte ich noch QHttp (eine Qt-Klasse) als Alternative.
EDIT: Habs gelöst...
URLDownloadToFile(NULL, L"http://www.heise.de/index.html", L"D:\\test.txt", NULL, NULL);
Ist die richtige Zeile
-
-
TGGC schrieb:
RTFM: char, wchar, string, wstring! f'`8k
AutocogitoGruß, TGGC (Das kommt gut)
Da ich das ganze schon gelöst hab hättest du dir den sinnlosen Beitrag sparen können
-
Paddre schrieb:
TGGC schrieb:
RTFM: char, wchar, string, wstring! f'`8k
AutocogitoGruß, TGGC (Das kommt gut)
Da ich das ganze schon gelöst hab hättest du dir den sinnlosen Beitrag sparen können
Das ist TGGC, einfach ignorieren. Er ist daran gewöhnt, dass er immer mal wieder ignoriert wird und das ab und zu mal ein riesiges Geschrei um ihn gemacht wird.
Er ist ein seltsames und teilweise sinnvolles Gespenst in diesem Forum
Grüssli
-
Dann bleib halt unwissend und werde gluecklich mit deinem c&p-Code. f'`8k
AutocogitoGruß, TGGC (Das kommt gut)
-
f'`8k