Skocz do zawartości

linkvault.co

Rekomendowane odpowiedzi

jak tam prace nad aktualizacją?

i jeszcze pytanko, co jest nie tak z tym kodem? wywala błąd i bot nie rusza w ogóle

var image = ie.GetBrowserImage("reCAPTCHA");
if (image != null)
{
string captcha = combot.CaptchaSniper("https://127.0.0.1:80", image);
ie.TextField(Find.ByName("recaptcha_response_field")).SetAttributeValue("value", captcha);
}

jeszcze jedno, co w przypadku gdy na jakiejś stronie są dwa pola tekstowe o identycznym ID i nazwie (np. jedno w panelu bocznym, służące do logowania a drugie służące do zakładania nowego konta). Chce wypełnić to drugie ale w kodzie pierwsze jest niestety to do logowania, więc jak to obejść? W sumie nie byłoby problemu gdyby wypełnił i jedno i drugie - ale tego też nie wiem jak zrobić :)

ps. odpowiedz proszę na moją PW :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 81
  • Dodano
  • Ostatniej odpowiedzi

Witam,

właśnie skończyłem pisać aktualizację do wersji 0.8 beta. Dotyczy głównie nowego modułu OCR. Niebawem opiszę jego działanie. Paczka będzie dostępna do pobrania najpóźniej w poniedziałek.

Co do kodu posłałem odpowiedź na pw :)

Odnośnie ostatniego pytania, pola o identycznym id można uzupełnić w ten sposób:

browser.TextFileds.Filter(elem => elem.Id.Contains("mojepole"))[0].SetAttributeValue("value", "jakis tekst");
browser.TextFileds.Filter(elem => elem.Id.Contains("mojepole"))[1].SetAttributeValue("value", "jakis tekst");

pierwsza linijka uzupełni pierwsze pole tekstowe, którego id zawiera tekst "mojepole", analogicznie druga linijka uzupełni drugie.

Jeśli chcesz aby id było dokładnie takie jak wyszukiwany string musi być znak równości zamiast Contains(zawiera)

browser.TextFileds.Filter(elem => elem.Id =="captcha")[0].SetAttributeValue("value", "jakis tekst");

pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Do pobrania jest dostępna aktualizacja do wersji 0.8 beta.

Przedstawiam opis działania nowego modułu do obsługi OCR (rozpoznawania obrazków captcha)

OCR.png

Jak widać na pierwszej zakładce do wyboru są 2 tryby działania. Dotyczą sposobu wybierania narzędzia / serwisu OCR, który zostanie użyty do rozpoznania obrazka.

Tryby działania:

1. OCR Services List (Lista Serwisów OCR) - program wybiera OCR na podstawie kolejności na liście.

Przykład:

OCR_services_list.png

Zgodnie z kolejnością program najpierw spróbuje odczytać obrazek za pomocą Antigate , jeśli się nie uda skorzysta z Captcha Sniper, jeśli i to zawiedzie użytkownik

będzie mógł przepisać obrazek manualnie (Solve Manually). Na końcu program skorzysta z Death by Captcha. Kolejność listy można przesuwać myszą (drag & drop). Jest ona automatycznie zapisywana do pliku config.ini i ustawiana przy uruchomieniu programu.

Użytkownik może

- wyłączyć / włączyć poszczególne serwisy OCR

- modyfikować kolejność użytych przez program serwisów OCR

2. Captcha Types (Typy Obrazków Captcha)

Program rozpoznaje typ obrazka i przesyła go do OCR przypisanego do tego rodzaju obrazka.

Przykład:

Captcha_Types.png

Wywołuję funkcję odpowiedzialną za ocr

string odpowiedz = combot.OCR(image);

Program rozpoznaje typ obrazka ze zmiennej image, następnie przekazuje do serwisu OCR przypisanego do tego typu obrazka.

Aktualnie program rozpoznaje ok 50 typów obrazków.

Oczywiście można używać funkcji do OCR pomijając moduł OCR, tak jak to było dotychczas.

Narzędzie do przepisywania obrazków (Solve Manually)

:SolveManually.png

Działa wielowątkowo, czyli jeśli obrazki załadują się jednocześnie z kilku wątków możemy przepisywać jedno po drugim, strzałkami przełączać się między obrazkami.

Odnośnik do komentarza
Udostępnij na innych stronach

san, a całym szacunkiem, ale 15 zł kosztuje miesięczny abonament, kup i sprawdź.

Do autora, w modułu OCR przydało by się ilość prób odczytów do każdego OCR, nie jest sekretem ze bardzo mało captcha odczytywane z 100% sukcesem, wiec na przykład do CS czasami warto wysłać 3-4 captcha i tak dalej

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

MaxPan: racja, bardzo ważna funkcjonalność, na pewno pojawi się w najbliższych aktualizacjach.

San: jeśli nadal chcesz sprawdzić załóż konto i napisz do mnie na pw

Wrzuciłem kolejną aktualizację v 0.8.1 beta

Lista zmian w nagrywarce botów:

- Nowa nagrywarka botów. Napisana od początku. Zniknęło sporo nieprzydatnych funkcji i powstały nowe.

- Po kliknięciu na element typu pole tekstowe pojawi się opcja dodania pola bezpośrednio z wybranego projektu. Program automatycznie wyświetli pola aktualnie wybranego projektu.

- Naprawione klikanie w elementy typu SELECT. Domyślnie ustawia losowy wybór.

- Naprawione klikanie w elementy typu INPUT (w tym przyciski)

- Dodane okno edycji elementu html. Wyświetla atrybuty html zawarte w elementcie. Pozwala na ich podstawie dodawać akcje do kodu bota.

- Dodawanie nowych botów bezpośrednio z okna nagrywarki.

- Integracja odczytu / zapisu botów w oknie nagrywarki z silnikiem programu.

- Dodana zakładka "steps" w nagrywarce botów. Wyświetla listę wykonywanych akcji wraz z parametrami.

- Naprawiony błąd powodujący wysypkę nagrywarki.

- Naprawiona integracja funkcji programu z nagrywanym kodem

Pozostałe zmiany:

- Optymalizacja silnika odpowiadającego za uruchamianie botów i wyświetlanie na liście.

- Poprawione działanie UI.

- Dodawanie nowych botów w głównym oknie programu.

Co nowego będzie w następnych aktualizacjach?

Powoli zbliżamy się do wersji 1.0. Do tej wersji zamierzam zrobić:

- Automatyzacja przeglądarki Chrome + obsługa proxy dla niej

- Nowe boty z otwartym kodem w tym rejestrator kont Web 2.0, rejestrator na forach i inne

Jednocześnie pragnę poinformować, że jest to najlepszy czas na zakupienie licencji lifetime, gdyż najprawdopodobniej aktualna promocja (300 zł) potrwa do końca listopada.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Aktualizacja do wersji v 0.8.2 beta

Obsługa Email: aktywacja kont, klikanie i pobieranie linków:

Połączenie ze skrzynką:

var email = combot.Email ("poczta.onet.pl", "110", "mojlogin", "mojpass");

Aktywacja email:

string link = email.RequestLink(string regex, bool delete, int timeout)

Przykład:

string link = email.RequestLink("confirmation-link", true, 150);

wyszukuje i aktywuje link, zgodny z wyrażeniem regularnym w zmiennej regex. Zmienna regex może być po prostu szukanym ciągiem znaków. Drugim parametrem jest true lub false. Jeśli będzie true email z linkiem zostanie usunięty po kliknięciu w niego. Trzeci parametr to timeout czyli jak długo program ma przeszukiwać skrzynkę, ponieważ jak wiadomo czasami maile przychodzą z opóźnieniem.Funkcja zwraca string zawierający wyszukiwany link lub pusty string w przypadku nie znalezienia linka.

Funkcja występuje w kilku wariantach (przeciążeniach), przykłady:

string email.RequestLink("confirmation-link");

Funkcja wyszukuje i aktywuje link tylko jeden raz i nie usuwa emaila.

string email.RequestLink("confirmation-link", true);

Funkcja wyszukuje i aktywuje link tylko raz i usuwa email

string email.RequestLink("confirmation-link", true, 150, 15);

Funckja wyszukuje i aktywuje link z ustawionym timeoutem 150 sek, przy czym odstępy między kolejnymi wyszukaniami wynoszą 15 sek (z ostatniego parametru). Domyślnie odstęp wynosi 10 sek. Jest to tak zwany interval.

Czasami nie chcemy od razu klikać w link, chcemy go tylko pobrać. Zazwyczaj taka sytuacja ma miejsce kiedy nie wystarczy kliknąć w link, aby aktywować konto i np. po połączeniu z linkiem wyskakuje captcha, którą trzeba przepisać.

Sprawdza się wtedy funkcja GetLink. Przykład:

string link = email.GetLink("confirmation-link", true, 150, 15);

Funkcja ma te same warianty co wcześniej opisana RequestLink. Jedyna różnica jest taka, że GetLink nie klika w linki

Nowa zakładka Accounts (konta).

Służy do przechowywania i pobierania danych kont założonych na stronach.

Jeden rekord (konto) posiada 4 pola: Address, Login, Password, Email

Metody do obsługi kont:

Dodawanie konta, przykład:

combot.AddAccount("https://mojastrona.pl", "mojlogin", "mojpass", "mojmail@wp.pl");

Pobieranie rekordów, przykład:

var myaccount = combot.GetAccount("https://mojastrona.pl");

- wyszukuje i zwraca konto, którego pole Address jest taki jak parametr;

var myaccount = combot.GetAccountByLogin("mojlogin");

- wyszukuje i zwraca konto, którego pole Login jest taki jak parametr;

var myaccount = combot.GetAccountByPassword("mojpass");

- wyszukuje i zwraca konto, którego pole Password jest taki jak parametr;

var myaccount = combot.GetAccountByEmail("email");

- wyszukuje i zwraca konto, którego pole Email jest taki jak parametr;

Pobieranie danych konta, przykłady:

var myaccount = combot.GetAccount("https://mojastrona.pl");

string mylogin = myaccount.Login;

- pobiera login

string mypass = myaccount.Password;

- pobiera hasło

string myemail = myaccount.Email;

- pobiera adres email

string myaddress = myaccount.Address;

- pobiera adres url

- Nowe funkcje przeglądarki

Kilka nowych funkcji, które nie wnoszą nic nowego, powstały jedynie po to, aby ułatwić pisanie osobom, które mają problemy ze składnią i potrzebują jak najprostszego zapisu. przykłady:

Pobieranie atrybutów html:

string linkobrazka = browser.Get("img", Find.ById("captcha"), "src");

- pobiera wartość atrybutu html. Jeśli element html nie istnieje, program kontynuuje działanie, wykonując kolejne linijki.

Ustawianie wartości atrybutów html:

browser.Set("input", Find.ById("username"), "value", "mojlogin");

- ustawia wartość atrybutu html. Jeśli element html nie istnieje, program kontynuuje działanie, wykonując kolejne linijki.

browser.TextSet(Find.ById("username"), "mojlogin");

- ustawia wartość atrybutu value. Dotyczy tylko pól tekstowych. Jeśli element html nie istnieje, program kontynuuje działanie, wykonując kolejne linijki.

Nowe funkcje obiektu combot:

string myurl = combot.GetBaseUrl("https://combot.pl/darmowe-boty/");

Zwraca podstawowy adres url czyli skrócony do domeny, lub subdomeny ze zmiennej typu string. Ponadto odcina początkowy człon "www". Jeśli wywołamy funkcję bez parametru, zrobi to samo, lecz dla parametru wejściowego bota (combot.starter). Oznacza to, że

combot.GetBaseUrl(combot.starter);

to to samo co:

combot.GetBaseUrl();

jeśli adres ma nieprawidłowy format zwraca pusty string.

Funkcja przydaje się kiedy trzeba ujednolicić format adresów url.

Odnośnik do komentarza
Udostępnij na innych stronach

Wrzuciłem do panelu nową wersję 0.8.2.1 beta

- Poprawiona funkcjonalność zakładki Accounts. Przypominam, że odpowiada ona za przechowywanie danych do kont na stronach.

- Nowy bot Web20Register slużący do rejestracji kont na stronach. W katalogu projects znajduje się przykładowy projekt zawierający pola, które trzeba uzupełnić aby bot mógł rejestrować konta. Po założeniu konta dane zostają zapisane do zakładki Accounts.

Nowy bot ma otwarty kod dzięki czemu analizując go można szybko nauczyć się jak samemu automatyzować rejestrację. Pozwala to również na wprowadzanie własnych zmian. Automatyzacja jednej strony, która nie zawiera wyszukanych zabezpieczeń, zajmuje kilka minut. Te bardziej wyszukane można ogarnąć w ok 30 minut. Niebawem pojawi się tutorial tłumaczący poszczególne tricki zastosowane w celu pokonania zabezpieczeń formularza rejestracji.

Aktualnie obsługiwane strony:

https://hawkee.com

https://delicious.com

https://tumblr.com

https://blox.pl

https://pinger.pl

Warto zwrócić uwagę na serwis tumblr.com, gdzie aby się zarejestrować trzeba wykonać linijkę kodu Javascript odpowiadającą za uzupełnienie pola email. Jest to miejsce gdzie kończą się możliwości dodawarek php i innych nie obsługujących JS.

Niedługo bot zostanie zaktualizowany o nowe strony.

Odnośnik do komentarza
Udostępnij na innych stronach

W panelu wylądowała właśnie kolejna aktualka v 0.8.2.2 beta

- Poprawione kilka błędów

- Dodawanie emaili do listy w zakładce Emails z poziomu bota.

- Automatyczne zapisywanie danych z zakładki Emails

- Nowy bot do Rejestracji kont pocztowych w serwisie onet.pl. Po zarejestrowaniu dane założonego konta zapisywane są w zakładce Emails.

Odnośnik do komentarza
Udostępnij na innych stronach

Faktycznie, teraz powinno być ok.

Dodam jeszcze, że rejestrator na onet po zarejestrowaniu próbuje wyłączyć filtr antyspamowy, ponieważ domyślnie sporo maili aktywacyjnych ląduje w folderze spam. Kod jest otwarty także można sobie do woli modyfikować. Niektóre rzeczy zrobiłem na prostaka, jak będzie więcej czasu udoskonalę tego bota. Pola projektu powinny być takie jak zmienne na początku kodu.

Odnośnik do komentarza
Udostępnij na innych stronach

Do pobrania nowa paczka.

Zawiera nowego bota PksiQuestion.cs, który służy do pobierania pytań tesktowych z katalogów PKSI.

Pytania zapisują się w pliku raportu w formacie xml: <q id="tresc pytania"></q>. Aby włączyć je do zbioru pytań / odpowiedzi wykorzystywanych przez program należy skopiować takie linijki do pliku answers.xml, który znajduje się w głównym katalogu programu.

Przyładowa linijka: <q id="pytanie">odpowiedz</q>

Bot ma otwarty kod. Korzysta z przeglądarki w trybie niewidocznym. Aby zobaczyć jak pracuje przeglądarka należy zamienić linijkę

var browser = combot.StartIE(false);

na

var browser = combot.StartIE(true);

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.


×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności