Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi HTML Seite einlesen (https://www.delphipraxis.net/6934-html-seite-einlesen.html)

DanielP 27. Jul 2003 19:54


HTML Seite einlesen
 
ich versuche mit Delphi 6 (fastnet) eine HTML- Seite Zeile für Zeile einzulesen. Aber irgendwie haut das nicht hin. Diese Zeilen liefern ein seltsames Ergebnis:

NMHTTP1.Host := 'www.google.de';
NMHTTP1.Connect();
NMHTTP1.Writeln('GET /index.html');

for i:= 0 TO 6 do
* Memo1.Lines.Add(NMHTTP1.ReadLn());

NMHTTP1.Disconnect();

Es kommt die Meldung: Fehler bei der Bereichsprüfung (Zeile *).

Wenn ich aber folgenden Code benutze:

NMHTTP1.Host := 'www.google.de';
NMHTTP1.Get('/index.html');
Memo1.Lines.Add(NMHTTP1.Body)

funktioniert es.
Warum geht das Einlesen Zeile für Zeile nicht, bzw. wie bekomme ich das hin?

Besten Dank
Daniel

sCrAPt 27. Jul 2003 21:59

Re: HTML Seite einlesen
 
Ich mach das immer mit IdHTTP von Indy
Delphi-Quellcode:
function Siteload(const AURL: String): String;
var
IdHTTP: TIdHTTP;
begin
IdHTTP:=TIdHTTP.Create(nil);
try
Result:=IdHTTP.Get(AURL);
finally
IdHTTP.Free;
end;
end;

DanielP 27. Jul 2003 23:56

Re: HTML Seite einlesen
 
die Verwendung von IdHTTP von Indy funktioniert auch nicht. Das zeilenweise Einlesen funktioniert einfach nicht. Das Seltsame ist, dass die Verwendung

Code:
Get('/index.html');
die Seite richtig lädt, aber mit dem Befehl

Code:
WriteLn('GET /index.html');
und anschließendem

Code:
ReadLn();
funktioniert es nicht. Wenn ich IdHTTP benutze, dann erhalte ich von dem Server einen 404 Fehler, bzw. beim Google- Server geht es gar nicht.

sCrAPt 28. Jul 2003 09:43

Re: HTML Seite einlesen
 
Mit meinem Indy-Code liest du die ganze Seite ein ;-)
Delphi-Quellcode:
memo1.text:=siteload('http://www.og4all.de');
Mit
Delphi-Quellcode:
memo1.lines.loadfromfile('index.html');
kannste speichern
Mit
Delphi-Quellcode:
memo1.lines.strings[Zeile-1];
kannste die Zeilen auslesen

DanielP 28. Jul 2003 11:10

Re: HTML Seite einlesen
 
mir geht es darum, dass die Seite nicht auf einmal komplett geladen werden muss. Ich will auf eine große Datei im Internet zugreifen, die nicht auf einmal geladen werden soll, sondern immer nur eine Zeile, die ausgewertet wird, dann soll die nächste Zeile geholt werden usw.
Es soll ein MailProgramm werden, dass sich aus dieser Datei die eMail- Adressen holt, die eMail an den User verschickt, sich dann die nächste Zeile holt ...
Hole ich mir alle Adressen auf einmal, dauert dies zu lange und ich muss alle Adressen zwischenspeichern, was auch nicht passieren soll. Und darum wäre es gut, wenn ich mit ReadLn() immer nur eine Zeile holen könnte.

sCrAPt 28. Jul 2003 11:20

Re: HTML Seite einlesen
 
Soll das ein Spider zum spammen werden?

DanielP 28. Jul 2003 12:21

Re: HTML Seite einlesen
 
nein, kein Spammer. Da meine Site gehostet wird, kann ich mit Delphi keinen direkten Connect zur DB herstellen (wird von dem Provider unterbunden). Deshalb muss ich das Ganze mit einem Skript "umgehen". Ich rufe mit der Anwendung ein Skript von meiner WebSite auf, das wiederum alle eMail- Adressen in eine Datei schreibt. Und diese Datei möchte ich dann mit dem Programm auslesen, um die Mitglieder anzuschreiben. Es handelt sich nicht um ein Spam, da sich die Leute bewußt bei mir eintragen, um über Neuigkeiten informiert zu werden. Nur sind es mittlerweile zu viele, so dass ich die Mitglieder nicht mehr über ein PHP- Skript anschreiben kann, sondern dies muß über eine eigene Anwendung laufen.

sCrAPt 28. Jul 2003 14:30

Re: HTML Seite einlesen
 
meinst du eine mySQL-Datenbank? Du weißt schon das Delphi auf SQL-Datenbanken zugreifen kann !?!??!

DanielP 28. Jul 2003 19:10

Re: HTML Seite einlesen
 
ja, es ist eine MySQL- Datenbank. Das ich mit Delphi die DB ansprechen kann, ist mir bekannt, klappt intern auch, aber nicht extern, da ein Zugriff auf die DB (von meinem Provider) nur über deren Server möglich ist (ich habe das schon getestet!).

sCrAPt 28. Jul 2003 22:10

Re: HTML Seite einlesen
 
sorry, zeilenweise auslesen/downloaden kenn ich nicht. Mit einem PHP script sollte das aber gehen....


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz