[C++] obsluga www

0

ostatnio uzywam strony internetowej, na ktorej wpisuje wartosci liczbowe do editow i zatwierdzam je buttonami (czasmi musze jeszcze sie zalogowac)...
moim pragnieniem jest zautomatyzowanie tego procesu w taki sposob, by aplikacja uruchomiona na moim komputerze wykonywala ta czynnosc za mnie...

teoretycznie mozna zbudowac aplikacji, ktora poprzez uchwyty dzialala by na otwartym oknie popularnej przegladaki internetowej, ale z doswiadczenia wiem, iz zabawa z uchwytami jest zmudna i nie zawsze sie sprawdza... , dodatkowo takie rozwiazanie jest niewygodne, gdy w tym samym czasie chce ort! z komputera (otwarte okno, na ktorym beda przeprowadzane operacje musi byc aktywne)...

najbardziej interesowalo by mnie rozwiazanie analogiczne do sposobu odbierania poczty (jednak serwery pop3 sa specjalnie do tego celu przygotowane), jednak watpie by witryna o ktorej mowie 'zakladala' obsluge 'automatow', wrecz odwrotnie, zwalczala je...

czy ktos moze ma jakies sugestie odnosnie tego zagadnienia ?
wolalbym, by do polaczenia posluzyc sie komponentem TClientSocket badz operujac bezposrednio na socketach, a nie posugujac sie pakietem INDY...

0

teoretycznie mozna zbudowac aplikacji, ktora poprzez uchwyty dzialala by na otwartym oknie popularnej przegladaki internetowej

teoretycznie mozna tylko co ci to da?

ale z doswiadczenia wiem, iz zabawa z uchwytami jest zmudna i nie zawsze sie sprawdza...

zmudna, moze i tak, co do drugiego to bzdury piszesz. Dobrze zrobisz, dobrze dzialac bedzie :)

dodatkowo takie rozwiazanie jest niewygodne, gdy w tym samym czasie chce korzystac z komputera (otwarte okno, na ktorym beda przeprowadzane operacje musi byc aktywne)...

znow bzdura, nie musi

[CIACH!]

Jeden sposob.
Uchwyty odpadaja, chyba, ze wpadles na genialny pomysl jak zmusic przegladarke do dzialania odpowiedniego do kodu html :>

Jesli cos wpisujesz i klikasz sobie na stronie to mozesz rownie dobrze wyslac dane do dokumentu online, jak to robi dokument, po ktorym sobie klikasz albo ...

0

Ja proponuje żebyś zrobił tak... najpierw sprawdz kod źródłowy stronki poszukaj kawałka w którym znajdują sie wszystkie te edity i buttony (<form></form>) pozbieraj wszystko do kupy (jeśli nie wiesz jak to napisz a odpowiem) i napisz sobie programik który bedzie za pomocą TClientSocket (na porcie 80) wysyłał tekst w stylu (SendText("GET http://link HTTP/1.0/n/r");)

To jest tylko ogólny zarys :) Jeśli masz pytania to pytaj

Aha i nie odpowiadam za twoje zabawy, skoro piszesz że na tej stronie zwalczają takich którzy używają takich programów

0

a moglbys jako przyklad napisac wyglad funkcji SendText, ktora by wyswietlala wynik wyszukiwania sciagu znakow w google, ja napisalem takie cos na onecie, ale sie okazuje, ze nie dziala:

ClientSocket1->Host = "www.onet.pl";
ClientSocket1->Port = 80;
ClientSocket1->Active = true;
....................
ClientSocket1->Socket->SendText(
(AnsiString)"GET http://szukaj.onet.pl/query.html?col=all&odm_tez=odmiana&qt=programowanie"
+char(13)+char(10)+char(13)+char(10) );

adres po get jest 'zywcem zerzniety' z paska adresow przegladarki internetowej, wiec nie mam pojecia dlaczego to nie dziala... otrzymuje nastepujacy komunikat w postaci kodu html: "Trwa łączenie z serwerem..", jednak wraz z otrzymaniem tego kodu moj Tclientsocket sie rozlacza...
ostatnie cztery 'char-y' sa dwoma 'enterami' (na jakims forum bylo napisane, ze to jest wymagane jako specyfikacja html).
na google wywala blad (oczywiscie stosujac adres google i wysylajac tekst, ktory ujzalem w 'googlowym' pasku adresow): "asynchronous socket error 10054".

0

to moze po kolei:
jak wyswietlic kod zrodlowy strony internetowej w Memo ort! z komponentu ClientSocket ?
tzn sam mechanizm odczytywania z Socket-a mam, ale jak powinno wygladac żądanie, by serwer zwrocil kod zrodlowy, np zadanie dla onetu ?
mi ciagle zwraca: 400 Bad Request (kod patrz wyzej) :[

0

zostalem oswiecony :)
zadanie powinno wygladac tak:
"GET http://www.onet.pl HTTP/1.1"
opis: http://www.ietf.org/rfc/rfc2616.txt

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