Ich möchte den Quellcode einer Webseite herunterladen und auswerten.
Zurzeit mache ich das manuell indem ich auf der Webseite "Quellcode anzeigen" wähle.
Dann erscheint ein neues Fenster, das ein RichEdit enthält, in dem der Quellcode steht.
Mit Strg-A und Strg-C kopiere ich den gesamten Inhalt ins Clipboard, das mein Programm dann auswertet.
Nun möchte ich das automatisieren, d.h. mein Programm soll im Hintergrund laufen und alle paar Minuten ohne mein Zutun den Quellcode herunterladen und auswerten.
Ich habe hier auch schon einige Beiträge gelesen und die gezeigten Routinen ausprobiert, leider ohne Erfolg.
Dieses scheint zumindest teilweise zu funktionieren, liefert aber nur einen kleinen Teil der Daten und auch innerhalb dieses Teiles fehlen einige Daten.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
IdHttp:TIdHttp;
data:string;
begin
// data:=LoadUrl('http://www.030chat.de');
idHttp:=TIdHttp.Create;
Data := IdHTTP.Get('http://www.030chat.de');
idHttp.Free;
Memo1.Text:=data;
end;
Ein anderes das ich ausprobierte liefert einen leeren String, obwohl ein paar Daten geladen wurden.
Delphi-Quellcode:
function LoadURL(
URL:
String):
String;
var
IOpen, IURL: HINTERNET;
Read: Cardinal;
Msg:
array[0..4096]
of Char;
begin
Result := '
';
IOpen := InternetOpen('
GetIP', INTERNET_OPEN_TYPE_PRECONFIG, '
', '
',
INTERNET_FLAG_NEED_FILE);
if IOpen <>
nil then
try
IURL := InternetOpenUrl(IOpen, PWideChar(
URL),
nil, 0,
INTERNET_FLAG_NO_UI
or INTERNET_FLAG_PRAGMA_NOCACHE
or INTERNET_FLAG_RELOAD, 0);
if IURL <>
nil then
try
repeat
FillChar(Msg, SizeOf(Msg), 0);
if InternetReadFile(IURL, @Msg[0], Pred(SizeOf(Msg)),
Read)
then
Result := Result + Msg
else
Break;
until Read = 0;
finally
InternetCloseHandle(IURL);
end;
finally
InternetCloseHandle(IOpen);
end;
end;
Das dritte, das ich probiert habe basiert auf TWebBrowser, liefert aber, wie das erste nur einen kleinen Teil der Daten (anscheinend nur den Header der Seite).
Ich habe mich bisher nie mit "Internet" beschäftigt, stehe sozusagen auf dem Schlauch und bekomme Verständnis für Beiträge in denen jemand fragt "wie kann ich zwei Zahlen addieren".
Könnte mir bitte jemand weiterhelfen ?
Was ich vorzugsweise möchte, ist das, was ich bei eingangs beschriebener Vorgehensweise erhalte.