Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Daten einer Seite auslesen ohne TWebBrowser (https://www.delphipraxis.net/61608-daten-einer-seite-auslesen-ohne-twebbrowser.html)

akkarin 23. Jan 2006 21:04


Daten einer Seite auslesen ohne TWebBrowser
 
Ich will Daten einer Internetseite auslesen, ohne diese zu downloaden oder einen Browser zu öffnen, da dieser nur Arbeitsspeicher nutzen würde.

Bsp.:
Auf einer Seite stehen Daten wie:
Server 1 - 1925 Players
Server 2 - 3987 Players

und so weiter..

Nun will ich die Playeranzahl auslesen ohne mit TWebBrowser einen ganzen Browser zu öffnen!
Bzw. die Seite soll wie bei TWebBrowser geladen werden nur eben im Hintergrund und ohne den Arbeitsplatz für was graphische Laden zu benutzen

QUELLTEXT DOWNLOADEN GEHT NICHT, da die Seite JavaScript nutzt und ich mit dem quelltext nur den quelltext der Seite, nicht des Inhalts des JavaApplets bekommen würde..

geht das irgentwie? hab schon in der Code-Library und bei Google gesucht.. bei google ist es nur schwer, da ich nicht weiß was ich eingeben soll oO

mfg akkarin :mrgreen:



:dp:

Bernhard Geyer 23. Jan 2006 21:08

Re: Daten einer Seite auslesen ohne TWebBrowser
 
So wie du beschreibst wird der Inhalt der Seite per Javascript zusammengebaut. D.h. mußt auf jedenfall eine TWebbrowser nehmen und die Seite laden und das javascript ablaufen lassen (TWebBrowser braucht ja nicht sichtbar sein). Anschließend sollte es mittels WebBrowser.Document möglich sein auf das von JS erzeugte HTML-Dokument zuzugreifen.

akkarin 24. Jan 2006 06:15

Re: Daten einer Seite auslesen ohne TWebBrowser
 
nagut danke =) ich schau mal ob ich das hinkriege =)

akkarin 24. Jan 2006 17:38

Re: Daten einer Seite auslesen ohne TWebBrowser
 
wie kann ich mit WebBrowser.Document.??? wenn ich nicht weiß wo die daten stehen? also wenn ich diese erst noch finden muss oO
(Server1, 2, usw..)
Quelltext hab ich ja keinen wegen java script =*(

marabu 24. Jan 2006 18:03

Re: Daten einer Seite auslesen ohne TWebBrowser
 
Herzlich Willkommen in der Delphi-PRAXiS, akkarin.

Du wirst schon eine feste URL haben, auf die du zugreifen kannst, sonst hättest du uns doch die Beispieldaten gar nicht beschreiben können? Wenn du mit dem Browser interaktiv dahin surfen kannst, dann geht das auch automatisiert mit deinem Programm. Automatische Weiterleitung und JavaSript - das erledigt die WebBrowser-Komponente für dich.

Grüße vom marabu

akkarin 24. Jan 2006 21:05

Re: Daten einer Seite auslesen ohne TWebBrowser
 
Oo jo das weiß ich auch aber ich hab irgentwie nirgens gefunden wie ganau man das macht.. vielleicht bin ich auch zu dumm oder so.. aber ich hab ja kein form oder sowas und ich kann im quelltext ja auch nicht lesen, wie das feld heißt, das ich auslesen will usw..

also auf deutsch: ich hab nur quelltextauslese und form auslese methoden gefunden..

wie ich mit twebbrowser die daten auslese, davon hab ich 1. null ahnung und 2. nichts dazu gefunden =*(

ach ja und danke für das willkommen =) :dp:

marabu 25. Jan 2006 07:04

Re: Daten einer Seite auslesen ohne TWebBrowser
 
Wenn die Seite, die du auslesen möchtest, öffentlich zugänglich ist, dann nenne die Adresse. Wenn ein Login nötig ist, dann speichere die auszulesende Seite einfach als Webseite, packe alles in ein ZIP und hänge sie hier rein. Und versuche möglichst genau zu beschreiben, was du willst.

marabu

akkarin 25. Jan 2006 13:46

Re: Daten einer Seite auslesen ohne TWebBrowser
 
k =)

also:
Erst geht auf http://www.runescape.com/
dann klickt auf PlayRunescape..
dannach auf low oder high detail, is egal =)

so und nun seit ihr auf der seite die ich auslesen will (directlink gibt redirect, was ich shcon ausschalten kann)

die Liste auf dieser Seite ist nun aber nicht immer nach server nummern gelistet, dafür muss man erst auf den grünen button neben "world" klicken

nun will ich die Player auf dieser Seite mit den zusammengehörigen ServerNummern auslesen und speichern..

und da kommt der punkt an dem ich nicht weiter weiß =)

need help xD :spin2:

akkarin 26. Jan 2006 11:15

Re: Daten einer Seite auslesen ohne TWebBrowser
 
[EDIT]

des rätsels läsung ist da =)

1. ich hab den link von dem button unter eigenschaften irgentwie gefunden xD
2. http://www.swissdelphicenter.ch/en/showcode.php?id=1847

SwissDelphiCenter Rox..

google rox too xD aber hat ewig gedauert sdc zu finden =)

danke an alle ;)

[E]dit: der code funtzt zwar noch net, aber ich find schon ne andre möglichkeit =)

[E]dit: auf swissdelphicenter.ch gibts keinen code zum auslesen von daten ohne quelltext zu benutzen..
=*( bei allen die ich fand gabs immer fehler =*(

weiß jemand weiter?

marabu 26. Jan 2006 19:01

Re: Daten einer Seite auslesen ohne TWebBrowser
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du bist so ungeduldig.

Im angehängten Code musst du die Schalter der Reihe nach von links nach rechts drücken. Was noch fehlt ist die Automatisierung der Abläufe. Ich habe auf die Schnelle keine zuverlässige Lösung gefunden, um das vollständige Laden der IFrames abzuwarten.

Grüße vom marabu

akkarin 27. Jan 2006 06:02

Re: Daten einer Seite auslesen ohne TWebBrowser
 
tut mir leid, dass ich etwas ungeduldig rüber komme (ich suche schon seit 2 tagen vergeblich =*( )

vielen dank für deine hilfe ich werd mir den code mal ansehen =)

[E]dit: wow schon 3 downloads.. das thema scheint mehrere leute zu interresieren xD

[E]dit2: was muss ich machen um das programm zu starten? oder kann ich es garnicht starten nur mit den 2 dateien die in der zip sind?

marabu 27. Jan 2006 06:14

Re: Daten einer Seite auslesen ohne TWebBrowser
 
Du musst ein Standardprojekt öffnen, die enthaltene Form entfernen und die Form aus meinem Archiv einfügen. Sie wird dann automatisch zur MainForm und dein Projekt kann kompiliert und ausgeführt werden.

marabu

akkarin 27. Jan 2006 06:18

Re: Daten einer Seite auslesen ohne TWebBrowser
 
k danke =)

also damit funtzt es jetzt muss ich es auseinander klamüsern VIELEN DANK!!!

nur die ersten 3 buttons sind unnötig, da:

Delphi-Quellcode:
procedure TMainForm.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
If URL = 'http://www.runescape.com/' then Cancel := TRUE;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.runescape.com/serverlist.ws?lores.x=1&plugin=0&order=WLMP');
end;
=) danke danke danke du bist mein held xD

(woher hast du das eigentlich? ich würd gerne mehr über twebbrowser lernen nur hab ich bei google nichts gescheites gefunden :cry: )

[E]dit: PS: mit diesem code werden die server auch gleich nach server nummern geordnet

marabu 27. Jan 2006 06:39

Re: Daten einer Seite auslesen ohne TWebBrowser
 
Die ersten drei Buttons zeigen doch die Autonavigation und den Zugriff auf frames und elements!

Wenn du mehr über das WebBrowser Control lernen möchtest, dann geht das online - oder du musst dir den Platform SDK besorgen. Als Download allerdings etwas riesig.

marabu

akkarin 27. Jan 2006 12:11

Re: Daten einer Seite auslesen ohne TWebBrowser
 
ich hatte heut morgen keine zeit mir die näher anzuschaun =)

aber die ersten 3 buttons zeigen doch nur wie ich zu der seite gelange dachte ich =) und das geht eben schneller.. aber ich nehme mich dem sowieso jetzt am wochenende noch lange an =) und danke für den link *freu*

akkarin 28. Jan 2006 19:47

Re: Daten einer Seite auslesen ohne TWebBrowser
 
wenn ich die navigation mit diesem code mache:

Delphi-Quellcode:
procedure TMainForm.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
If URL = 'http://www.runescape.com/' then Cancel := TRUE;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.runescape.com/serverlist.ws?lores.x=1&plugin=0&order=WLMP');
end;
dann kommt ne fehler nachricht:
Zitat:

Project project1.exe raised exeption class EOleExeption with message 'Mitglied nicht gefunden'. Process stopped. Use Stop or Run to continue.
und ich hab keine ahnung an was das liegt, da der link:
http://www.runescape.com/serverlist....n=0&order=WLMP
nur der link des "Sortiere Server nach Nummer (1-112)"-Linkes ist..
das gleiche passiert aber auch bei den links der anderen buttons..

=*/ ich hab keine ahnung an was das liegen könnte

marabu 28. Jan 2006 20:35

Re: Daten einer Seite auslesen ohne TWebBrowser
 
Hi.

So wird das nichts. Du kannst nicht einfach einen Link von einer Seite mitten in einem Angebot nehmen, welches die Macher mit verschiedenen Techniken vor einer Überlastung durch Software-Agenten schützen. Du musst schon die Kette der Links abklappern, wie ich sie auf die Schalter der Demo gelegt habe. Dabei werden Kekse gespeichert, die du später wieder mitlieferst. Ohne das Gebäck wirst du auf die Homepage umgeleitet, wenn du mit einem deep link antanzt. Da hilft es auch nicht, wenn du die Umleitung in deinem Programm nicht zur Kenntnis nehmen willst - oder was hast du dir bei Cancel:=True gedacht? Wenn du den ganzen Kram nicht sehen willst, dann solltest du dich mal in die Indy-Komponenten einlesen. Dort kannst du die IdHTTP Komponente mit einem CookieManager ausstatten und den Weg unsichtbar abklappern.

Grüße vom marabu

akkarin 28. Jan 2006 21:49

Re: Daten einer Seite auslesen ohne TWebBrowser
 
danke hab ich halt net gewusst *schäm*

ich werd mit idHTTP mal ansehen =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 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