Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet beolvasni egy...

Hogyan lehet beolvasni egy folyamatosan változó értéket valós időben egy weboldalról delphiben?

Figyelt kérdés

A problémát részben megoldottam, de sajnos 10 mp-es késéssel és azt is elég körülményesen. Van valakinek egy használható ötlete hogy miként valósítható meg real-timeban?


Ebből a forráskódból indultam ki. Ehhez szeretnék kérni konkrét, érthető és használható segítséget és kiegészítést,ha egyáltalán megoldható.Köszi bárkinek aki segítene! Bármi megoldás érdekelne


Weboldal:Worldometers oldalról van szó

URL: [link]


Source code:


procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;

var

PersistStream: IPersistStreamInit;

Stream: IStream;

FileStream: TFileStream;

begin

if not Assigned(WB.Document) then

begin

ShowMessage('Document not loaded!') ;

Exit;

end;


PersistStream := WB.Document as IPersistStreamInit;

FileStream := TFileStream.Create(FileName, fmCreate) ;

try

Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;

if Failed(PersistStream.Save(Stream, True)) then ShowMessage('SaveAs HTML fail!') ;

finally

FileStream.Free;

end;

end; (* WB_SaveAs_HTML *)


procedure TForm1.Button1Click(Sender: TObject);

begin

WebBrowser1.Navigate(' [link] ');


end;


procedure TForm1.Timer1Timer(Sender: TObject);

begin



WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER);

WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_PROMPTUSER);

memo1.PasteFromClipboard;


end;

initialization

OleInitialize(nil);


finalization

OleUninitialize;

end.


...


Utána kiolvastattam a memoból a sorok között azt az értéket amit ki szerettem volna venni a weboldalról, majd beletettem egy panelba és kiírattam a képernyőre.Csak sajnos nem az aktuális adatot mutatta,mert késett 10mp-t és nem volt szinkronban a weboldalon lévő adattal már akkorra.Nem nagy ügy,de jó lenne ha volna valami egyszerűbb és praktikusabb megoldás arra,hogy kiolvassa az éppen aktuális értéket a weboldalról.Az a baj ha túl gyorsra veszem a letöltést a timer-rel,akkor hibát jelez,vagy nem az az adat kerül be hirtelen a panelba,amit oda szerettem volna belerakni.

Ötlet? Delphiben kellene a segítség mindenképpen



2015. aug. 30. 00:53
 1/6 anonim ***** válasza:
Jó kis ötlet.:))Szerintem gépfüggő is.Ha elég gyors a neted és a géped,szerintem lazán leveheted 2-3mp-re az idözítő értéket és nem kell 10 másodpercig késleltetned a córét.Ha vágod a jscriptet,akkor meg keresd meg az algoritmusát annak,ami előállítja a kívánt értéket és programozd le delphiben,akkor biztos valós időben fogja növelni a számlálód értékét.Különben a franc se tudja.Nem hiszem hogy bárki is vagy bármi tudna neked valós időben folyamatosan változó értéket beolvasni egy weboldalról de ki tudja:)
2015. aug. 30. 01:14
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

[link]


A megoldasoddal az a baj, hogy a teljes weboldalt betolti minden alkalommal es azt parse-olod. Ha eletben tartod vegig az oldalt, fut a JS timer (frissit), akkor csak ebbol kell kikeresni az adott erteket.

2015. aug. 30. 01:16
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
Ha belegondolsz ez nem valós adatot oszt meg, hanem egy átlagolt értéket, hogy 10el nő egy perc alatt a népesség, akkor 6 másodpercenként növeli 1-el. Jó kicsit összetetteb, ahogy látom, mert fel le ugrál ez azért van mert közbe csökken is. Így sokkal egyszerűbb egy számlálót létrehozni mint lemásolni az adatokat. Utána csak szinkronizálnod kell a számlálót.
2015. aug. 30. 01:21
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Köszi.Sajnos a javascriptet még nem nagyon vágom.Gondoltam bár hogy kikeresem vhogy az értéket a js-ből,de el lennék vele asszem.Egyébként mindkettő jó ötlet!
2015. aug. 30. 01:22
 5/6 A kérdező kommentje:
Igen én is olvastam már róla más topicban,hogy ez ilyen tessék-lássék adat,de mint feladatként megteszi szerintem vagy nemtom.Igazából a hitelessége kétes ügy valóban.
2015. aug. 30. 01:25
 6/6 ejbenjaro ***** válasza:
Van API az oldalhoz, igaz, fizetős. Azzal könnyebb boldogulni. Ha a programod túl gyakran kéri le az oldalt, fenn áll a veszélye, hogy letiltják az onnan érkező kérések kiszolgálását. Ezzel is számolj.
2015. aug. 30. 13:09
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!