Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext (https://www.delphipraxis.net/152782-website-auslesen-idhttp-webbrowser-%3D-unterschiedlicher-quelltext.html)

Notxor 6. Jul 2010 20:09

website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext
 
Hallo zusammen!

Ich versuche gerade den Quelltext einer Website auszulesen. Mit der Komponente TWebbrowser hab ich es auch einigermaßen geschafft, allerdings habe ich schon öfters gelesen, dass der Webbrowser eher weniger zu empfehlen ist. (zumal ich an einer Darstellung der Website eigentlich gar nicht interessiert bin)

Nach etwas herumprobieren habe ich mit TIdhttp ebenfalls eine Webseite als Quelltext anzeigen lassen können. Allerdings unterscheidet(es gibt ein paar Ähnlichkeiten ^^) sich der Quelltext von dem, wie er zB im FireFox zu sehen ist (weswegen ich die benötigten Daten auch nicht auslösen kann).

Liegt das an irgendeiner Einstellung der Indy-Komponente oder möglicherweise an der Website?
Bzw gäbe es eine schnellere Methode, an den Quelltext einer Seite heranzukommen?

Schon mal vielen an alle, die sich die Mühe machen zu helfen.

(ah ja, ich nutze Delphi 2009 und die mitgelieferten Indy-Kompnenten (10 glaube ich)

Code schaut in etwa so aus
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
quelltext:TMemoryStream;
begin
quelltext := TMemoryStream.Create;
try
memo1.text:=idhttp1.Get('http://www.google.at'); //Edit :)
quelltext.Seek(0, soFromBeginning);
finally
idhttp1.Free;
quelltext.Free;
end;
end;

mkinzler 6. Jul 2010 20:11

AW: website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext
 
Indy o.ä. ist wohl der schnellste Weg. Ändere mal den USER AGENT

fui-tak 6. Jul 2010 20:30

AW: website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext
 
Hallo,
probier es mal so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text := IdHttp1.Get('http://www.google.at');
end;

Notxor 6. Jul 2010 20:34

AW: website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext
 
ok, den beim UserAgent habe ich jetzt ein paar Einstellungen ausprobiert, alle mit dem gleichen Ergebnis.

@fui-tak: hoppla, so hatte ich es bereits, habe auf die Schnelle den falschen Teil kopiert.

himitsu 6. Jul 2010 20:35

AW: website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext
 
Indy gibt genau das zurück, was ausgelesen wird.

TWebBrowser aka Internet Explorer und Firefox passen die Daten an, bevor sie diese anzeigen und Änderungen via JavaScript, Ajax und Co. sind auch möglich.

Notxor 6. Jul 2010 20:49

AW: website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext
 
das heißt dann für mich, dass es, falls die daten in der Tabelle etwas mit Javascript etc. zu tun haben für mich via Indy nicht (oder zumindest schwer) erreichbar sind, oder wie darf ich das verstehen?
(Hab mich erst seit gestern mit Indy/Internet & co beschäftigt, kenn mich da noch nicht all zu gut aus.)

mkinzler 6. Jul 2010 20:51

AW: website auslesen (idhttp/webbrowser) = unterschiedlicher Quelltext
 
Indy liest nur den Quelltext aus, wie er ist. Manipulationen am DOM, welche durch JS gemacht werden müsstest du selber durchführen. In diesem Fall würde ich aber eine vorhandene RenderEngine nehmen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.

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