Hogyan lehet beolvasni egy folyamatosan változó értéket valós időben egy weboldalról delphiben?
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
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!