Pisanie prostych programów na wielu płaszczyznach


(damiano3022) #1

1.program dostaje informacje ze strony 2. analizuje która to możliwość (if) 3.wybiera i uruchamia ruch myszki(dalsza część if)4.pętla lub jeśli kolejna aktualizacja tej informacji jest dla mnie niekorzystna chce żeby wykonał inny ruch myszką (oczywiście ruch i kliknięcie){też if} z tego co wiem da się to zrobić mapując to miejsce na ekranie a co z tymi informacjami to nie mam zielonego pojęcia oprócz tego jaką informacje chce mogę zobaczyć co z tym frame workiem bo coś z tym znalazłem

czy ktoś mi dokładnie wytłumaczy jak


(Fizyda) #2

Chcesz zintegrować program z przeglądarką - tak by pobierać informacje ze strony otwartej w przeglądarce. Czy też może chcesz pobierać dane z konkretnej strony do swojego programu?


(pionner) #3

Czy musi być to C++? W C# jestem to w stanie opędzić w 10 minut.
edit. Musisz sobie stworzyć WebClienta, za jego pomocą pobrać kod strony. Następnie regexem znaleźć to, co cię interere, a potem to już tylko jeden if.


(Fizyda) #4

WebClienta możesz też sobie stworzyć w C++ przy użyciu 1 linijki i odpowiedniego frameworka :wink: . Pytanie tylko czy on chce przechwytywać strony z przeglądarki typu Firefox/Chrome generalnie czy nie. O co zresztą pytałem.
Jeśli nie chce i chce tylko pobierać zawartość jakiejś strony i w zależności od jej zawartości wykonywać jakieś akcje to nie potrzebuje do tego nawet całego kolosa w postaci WebClienta, wystarczy zwyczajnie nawiązać połączenie z serwerem po http i pobrać stronę.


(pionner) #5

Pytałem o C#, bo C++ (a do tego z frejmłorkami) to niekoniecznie moja bajka :wink:


(damiano3022) #6

po prostu chce żeby to działało może to być w C++ ale nie musi a jestem otwarty na propozycje ponieważ jest to dla mnie ważne


(damiano3022) #7

konkretne dane z konkretnej strony informacje na bieżąco resetowane co ok 15 sekund


(Aranthor) #8

Jeśli dobrze rozumiem, to przepływ programu może wyglądać mniej więcej tak:

  1. Pobierz zawartość strony (np. biblioteka libcurl)
  2. Odczytaj ze strony odpowiednią informację (np. jakiś parser DOM lub wyrażenia regularne)
  3. Uruchom odpowiedni program w zależności od odczytanej informacji (np. funkcja system z biblioteki cstdlib)
  4. Wykonaj opcję 1 lub 2 w zależności od kodu zwróconego przez program z punktu 3.
  5. Poczekaj 15 sekund i przejdź do punktu 1.

Zgadza się?


(Fizyda) #10

W takim razie dane pobierasz: http://cpp0x.pl/dokumentacja/curl/895 możesz je przeszukać normalnie jak stringa. Chyba, że nie chcesz się tak bawić to możesz poszukać jakiejś biblioteki do operacji na DOM: https://stackoverflow.com/questions/4058025/what-c-c-library-to-use-for-html-dom-building-changing
Jeśli dane na stronie są dodatkowo pobierane asynchronicznie przez skrypt JS, to w tedy albo musisz wykorzystać API jakie używa strona, albo uruchomić JS na stronie. W takim wypadku szedłbym już w wykorzystanie Qt, konkretnie modułu WebView (http://doc.qt.io/qt-5/qtwebview-index.html) a do dostania się do tych danych WebChannel (http://doc.qt.io/qt-5/qtwebchannel-index.html).