TWebbrowser + zmieniony HTML

0

Witam, mam pytanie odnosnie TWebbrowser - mianowicie napisałem program, który automatycznie loguje się na daną stronę, pobiera z cookie's numer sesji i ją podtrzymuje. Dzięki temu przechodzi na kolene pod strony i sprawdza czy nie ma jakiś nowych wątków(postów).

Problem w tym, że na tej stronie jest troche skryptów z reklamami i różnymi pop-up. W Navigate2 w TWebBrowser zrobiłem obsługę nowych okien (gdy tylko nowe okno - zamknij je). Ale nadal pozostają inne skrypty które otwierają mi domyślną przeglądarkę.

No i moje pytanie : czy da się jakoś wykorzystać TWebBrowser do tego, ażeby pobrać najpierw kod HTML, pousuwać z niego to co jest mi nie potrzebne czyli : skrypty javascript, obrazki, animacje flash - i zachowując sesję wyświetlić ów kod w TWebBrowser ?

Robi tak np. Kerio Personal Firewall - w miejsce kodu JavaScript otwierającego pop-up wstawia informacje o zablokowaniu zawartośći.

Ewentualnie czy są jakieś komponenty które umożliwiłyby mi zrealizowanie w/w założenia ?

0

Pobieraniem stron, wysyłaniem odpowiednich zapytań oraz podtrzymywaniem sesji obarcz jakiś komponent obsługujący protokół HTTP (np. ten z Indy), a WebBrowser niech pozostanie jedynie formą prezentacji.

0

jabym proponował sciągnięcie strony WWW na dysk przefiltrowanie pliku w poszukiwaniu pop up'ów, a następnie ładowałbym stronę do Twebbrowser

0
Komorkowy_dzony napisał(a)

następnie ładowałbym stronę do Twebbrowser

Nie bedzie problemu z sciezkami wzglednymi (chyba ze zle zakumalem)?

0

Dobra, odświerze ten post bo może ktoś kiedyś też będzie miał ten kłopot co ja.

Zrezygnowałem w ogóle z użycia TWebBrowser. Chodziło mi tylko i wyłącznie o treść - czyli troche tekstu, który spokojnie moge wyświetlić w TMemo.

Wrzuciłem na formę TidHTTP (z pakietu indy), TCookieManage (indy), TIdAntiFreez (indy)

Http.Cookiemanager - na Tcookiemanage

Następnie przy uzyciu TStringStream, wykorzystalem metodę POST do wysyłania i odbierania danych z serwera.

Przy pomocy funkcji Ereg (chyba w php jest taka sama :P ) wyszukalem w kodzie HTML to co mnie interesowalo.

Ciastko było tylko jedno (snifowałem programem HTTPAnalyzer) wiec żeby uzyskac zawartosc ciastka a tym samym numer sesji :
ciastka.CookieCollection.Items[0].CookieText

a pozniej pozostaje tylko metoda GET w idHTTP plus odpowiednie parametry (w tym numer sesji)

Tym oto sposobem pozbyłem się reklam, pop-upów i innego syfu. I defakto nie musialem sie z tym za wiele meczyc :P bo zajelo mi to jakies 40min =] Na TWebBrowser niestety nie udalo mi sie tego zrobic tak, żeby podtrzymać sesję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1