Siemka
da się wykonać coś takiego:
IdHTTP1.Get('www.blablabla.pl/abc123123');
ale tak żeby skrypty javy się wykonały na tej stronie?? a jak nie to czy istnieje w ogóle możliwośc taka w indy albo synapse?
Siemka
da się wykonać coś takiego:
IdHTTP1.Get('www.blablabla.pl/abc123123');
ale tak żeby skrypty javy się wykonały na tej stronie?? a jak nie to czy istnieje w ogóle możliwośc taka w indy albo synapse?
Otwórz w WebBrowserze i pobierz dokument html po wyrenderowaniu. Getem pobierzesz zawartość, czyli plik html ew. z skryptem JS. Musiał byś mieć silnik który to wyrenderuje, więc najlepiej WebBrowserem lub osadź sobie chroma jako subproces i pobieraj z niego wyrenderowaną stronę.
no ok to powiedz mi jak zrobić z tym chromem
https://github.com/salvadordf/CEF4Delphi - to jest opakowanie silnika Chroma w komponent dla Delphi ale też Lazarusa. Jest tam też tona przekładów jak tego używać w katalogu demo.
Dzięki wielkie! :)
To co jest w przeglądarce to JavaScript a nie Java !
Też się męczyłem z podobnym problemem. Poniżej masz gotowe rozwiązanie z dowolnymi skryptami na stronie tak aby pobieranie zawartości było zawsze poprawne, możesz także zamiast webbrowsera użyć indy.
procedure LoadPage;
procedure SetApp;
const
registryPath = 'Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION';
var
Registry: TRegistry;
exeName: String;
begin
exeName := ExtractFileName(Application.exeName);
Registry := TRegistry.Create(KEY_SET_VALUE);
try
Registry.RootKey := HKEY_CURRENT_USER;
Registry.OpenKey(registryPath, True);
if not registry.ValueExists(exeName) then
Registry.WriteInteger(exeName, 9999);
finally
Registry.Destroy();
end;
end;
begin
SetApp;
WebBrowser.Silent := true;
WebBrowser.Navigate('https://mypage.com');
end;