Jak pobrać text strony internetowej (jej zawartość). Nie musi to być kod HTML. Da się to WebBrowserem zrobic? Nie chodzi tylko o takie zwykłe witryny, ale także o zabezpieczone (witryna banku). Zaznaczam, ze ten program jest dla mnie i nie mam zamiaru używać go w niegodziwych celach :)
pobierz z pomoaca komponentu HTTP.
http.get('www.strona.pl/index.htm');
Da się to zrobić WebBrowserem, ale prościej chyba komponentem HTTPGet. Powinno działać także na https.
Dowiedziałem sie ze mozna sciagnac stronke: idHTTP.Get(...
W tym tylko probelm, ze najpierw musze sie zalogowac. No a strony jaka chce uzyskac po zalogowaniu sie nie moze mi wyszukac metoda idHTTP.Get...
Użyj IdHTTP + IdCookieManager. Ustaw HandleRedirects na True.
Następnie weż wysniffuj to co przeglądarka wysyła (polecam program HTTPLook) i wysyłaj to samo swoim programem.
Kod strony
function GetHtml(WebBrowser : TWebBrowser) : string;
begin
Result:=WebBrowser.OleObject.Document.documentElement.innerHTML;
end;
Bez znaczników html
function GetText(WebBrowser : TWebBrowser) : string;
begin
Result:=WebBrowser.OleObject.Document.documentElement.innerText;
end;
Uprzedzam ze jestem zielony w tych sprawach. Ale gry uruchamiam ta procke z OleObject, to mam niestety komunikat: 'nie zaimplementowano'. Gdyby ten system z Ole przeszedl to by bylo swietnie!
Ale w razie jakby nie dopytam jeszcze o idHTTP. Uzylem HTTPLook. Zapisalem to co zrobil na Post w pliku tekstowym. W Kodzie dalem to:
ListBox1.Items.LoadFromFile('net.txt');
idHTTP1.Post(WebBrowser1.LocationURL, ListBox1.Items);
Memo1.Text:= idHTTP1.Get('---adres stronki dostepnej po zalogowaniu---');
Niestety, do memo laduje strone o koniecznosci zalogowania :(
Jak jest POST to uzywasz metody IdHTTP.Post a jak GET to IdHTTP.Get
Przy GET podajesz adres strony (z ew. parametrami) a przy POST pierwszym parametrem jest adres strony, drugim to co wysylasz a w trzecim to zmienna gdzie ma zostac umieszczone to co odebrales.
Poszukaj przykładów do IdHTTP.