Witaj gościu! Zaloguj się lub Zarejestruj aby móc korzystać ze wszystkich funkcjonalności jakie oferuje to forum! Rozpocznij zarabianie przez internet, poznaj korzysci pracy w domu! Rejestracja i korzystanie z forum jest całkowicie darmowe!
Praca w domu - Dodatkowa Praca - Zarabianie przez Internet
iMacros + 2Captcha do reCAPTCHA - Wersja do druku

+- Praca w domu - Dodatkowa Praca - Zarabianie przez Internet (https://zarabiam.com)
+-- Dział: Zarabianie przez Internet (/Forum-Zarabianie-przez-Internet-33)
+--- Dział: Boty i Programy (/Forum-Boty-i-Programy-357)
+--- Wątek: iMacros + 2Captcha do reCAPTCHA (/Temat-iMacros-2Captcha-do-reCAPTCHA-125948)



iMacros + 2Captcha do reCAPTCHA - JFR147 - 20-12-2015 17:43

Witam,

Czy ktoś jest w stanie podać mi skrypt do iMacros tak aby wraz z kontem na 2Captcha rozwiązywać obrazkowe captche?

Chodzi mi dokładnie o taki formularz jak jest na:
https://www.google.com/recaptcha/api2/demo

Potrzebuje wypełniać podobny kilkanaście razy dziennie ale captcha mnie dobija. Jeżeli ktoś jest w stanie napisać taki skrypt bazując na demie google, lub podać inne rozwiązanie jak to obejść, z góry wielkie dzięki! Huh


RE: iMacros + 2Captcha do reCAPTCHA - JFR147 - 27-12-2015 01:06

dobra sam coś tam spróbowałem napisać i wyszło mi coś takiego:


Kod:
VERSION BUILD=8920312 RECORDER=FX
SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE NO
SET !TIMEOUT_PAGE 999
SET !TIMEOUT_STEP 999
TAB CLOSEALLOTHERS

' Path to the captcha image with timestamp
' Tempfolder like C:\ or C:\TEMP\ under windows or like /tmp/ under linux
SET tempfolder C:\temp\

' Tempslash (Path with slashs as tempfolder) and with the htmlfile recaptcha_v2.html
SET tempslash C:\temp\

' Tempfile
SET tempfile captcha_{{!NOW:yyyymmdd_hhnnss}}.jpg

' Step 1: Config your apikey
SET apikey my_api
'And priority (prio 1-20)
SET prio 0

' Step 2: Save the captcha picture to local disk
TAB T=1
URL GOTO=https://www.google.com/recaptcha/api2/demo
'FRAME NAME=I0_*
FRAME F=1
EVENT TYPE=CLICK SELECTOR="#recaptcha-anchor>DIV:nth-of-type(5)" BUTTON=0
WAIT SECONDS=3
ONDOWNLOAD FOLDER={{tempfolder}} FILE={{tempfile}} WAIT=YES
'FRAME NAME=I1_*
FRAME F=2
TAG POS=1 TYPE=DIV ATTR=ID:rc-imageselect CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT
WAIT SECONDS=5

TAB OPEN
TAB T=2
URL GOTO=file:///{{tempslash}}recaptcha_v2.html?file:///{{tempslash}}{{tempfile}}
WAIT SECONDS=5
FILEDELETE NAME={{tempfolder}}{{tempfile}}
TAG POS=1 TYPE=DIV ATTR=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT
TAB CLOSE

'Wait a random number (1 to 5) of seconds
SET randomnumber EVAL("Math.floor(Math.random()*5 + 1);")
WAIT SECONDS={{randomnumber}}

'Syntaxcheck: API Key, prio
SET apikey EVAL("var s=\"{{apikey}}\"; if(s.match(/^[a-zA-Z0-9]+$/) && s.length <= 50 && s.length >= 5) s; else MacroError(\"API Key is wrong.\")")
SET prio EVAL("var s=\"{{prio}}\", d = parseFloat(s); if(d >= 0 && d <= 20) d; else MacroError(\"Value(Prio) is not in the set range.\")")

'Step 3: Open the a new tab, and go to 9kw.eu, and submit the captcha picture
TAB OPEN
TAB T=2
URL GOTO=https://2captcha.com/imacros.html

TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://rucaptcha.com/in.php ATTR=NAME:key CONTENT=my_API_KEY
TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:http://rucaptcha.com/in.php ATTR=NAME:file CONTENT={{tempfolder}}{{tempfile}}

ONDIALOG POS=1 BUTTON=OK CONTENT=
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://rucaptcha.com/in.php ATTR=*


WAIT SECONDS=3
SET !TIMEOUT_STEP 300
TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT
SET !TIMEOUT_STEP 0
WAIT SECONDS=1
TAB CLOSE

TAB T=1
TAG POS=1 TYPE=INPUT ATTR=ID:recaptcha_response_field CONTENT={{!EXTRACT}}
WAIT SECONDS=5
'Press Roll Button
TAG POS=1 TYPE=INPUT:SUBMIT ATTR=ID:free_play_form_button

'Cleanup: Delete the old captcha picture
FILEDELETE NAME={{tempfolder}}{{tempfile}}

ale wszystko działa dobrze do tego momentu:
Kod:
72-TAG POS=1 TYPE=INPUT ATTR=ID:recaptcha_response_field CONTENT={{!EXTRACT}}
73-WAIT SECONDS=5
74-'Press Roll Button
75-TAG POS=1 TYPE=INPUT:SUBMIT ATTR=ID:free_play_form_button
76-
77-'Cleanup: Delete the old captcha picture
78-FILEDELETE NAME={{tempfolder}}{{tempfile}}

później dostaje error:

Kod:
RuntimeError: element INPUT specified by ID:recaptcha_response_field was not found, line 72 (Error code: -921)

ma ktoś pomysł jak poprawnie napisać ostatnią faze skryptu :?:

iMacros for Firefox 8.9.4, Firefox 43.0.2, WIN7 ULTiMATE


RE: iMacros + 2Captcha do reCAPTCHA - TheBot - 29-12-2015 01:16

Tak wychodzi bezmyślne łączenie kilku API , czyż nie mam racji? Smile

Cytat:72-TAG POS=1 TYPE=INPUT ATTR=ID: CONTENT={{!EXTRACT}}

Czy w ogóle masz pojęcie o co chodzi w powyższej linii ? , domyślam się że nie .
Ta linia ma za zadanie wkleić "Last EXTRACT" w pole ID:recaptcha_response_field , w tym przypadku odpowiedź na Twoje zapytanie o captcha :

Właśnie w tej linii wyodrębniony jest text odpowiedzi (linia tak czy siak jest zła(wycięta z innego kodu(chyba z 9kw.eu) czy coś w tym stylu Smile ))
Cytat:TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT

Dostałeś Error , a w nim jego opis :

Cytat:RuntimeError: element INPUT specified by ID:recaptcha_response_field was not found, line 72 (Error code: -921)

Jasno wynika z tego ,że elemement ID jaki tu podałeś NIE został znaleziony , (zapewne linia wycięta z jakiegoś API , które obsługiwało "solvedMedia albo recaptcha v1 , bo tam jest przepisywanie textu z obrazka") , ale mniejsza z tym .

Ponadto w Twoim kodzie brakuje najważniejszego , czyli klikania w obrazki , bo co z tego że dostałeś odpowiedź (w postaci np "1234"),jak macro dalej nic nie zrobi (nie wyklika poprawnych lub nie numerów obrazków).
Poniższy kod jest kontynuacja od momentu "Otrzymania odpowiedzi od servisu rozwiązującego captcha (w tym przypadku https://2captcha.com/)"

Cytat:WAIT SECONDS=3
SET !TIMEOUT_STEP 300
TAG POS=1 TYPE=BODY ATTR=* EXTRACT=TXT
'Step 4: Check the captcha answer (text or nothing like #EANF# = Extraction Anchor Not Found)
SET answer EVAL("if (\"{{!EXTRACT}}\" == \"#EANF#\") {var x = \"\";} else {var x = \"{{!EXTRACT}}\";} x;")
'Clean the !EXTRACT variable for the next task
SET !EXTRACT NULL
TAB CLOSE

SET !TIMEOUT_STEP 0
WAIT SECONDS=1

TAB T=1
'FRAME NAME="I1_*"
FRAME F=2
SET !ERRORIGNORE YES
SET n1 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(0,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n1}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n2 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(1,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n2}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n3 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(2,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n3}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n4 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(3,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n4}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n5 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(4,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n5}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n6 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(5,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n6}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n7 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(6,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n7}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n8 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(7,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n8}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET n9 EVAL("var s=\"{{answer}}\"; if(s.match(/^[0-9]+$/) && s.length <= 9 && s.length >= 2) s.substr(8,1); else MacroError(\"Captcha answer is wrong.\")")
TAG POS={{n9}} TYPE=IMG ATTR=SRC:https://www.google.com/recaptcha/api2/payload?c=*
SET !ERRORIGNORE NO
'Click the Verify button
EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0
WAIT SECONDS=2
FRAME F=0
EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>FORM>FIELDSET>UL>LI:nth-of-type(6)>INPUT" BUTTON=0
WAIT SECONDS=3


Dla mnie ten kod działa prawidłowo ... ale nie ciesz się zawczasu Big Grin , bo na stronie https://www.google.com/recaptcha/api2/demo , to prosta sprawa żeby : kliknać "checkBox , zapisać obrazek , a potem w nim klikac " , dlatego że tutaj FRAME F= (numer się nie zmienia) i możesz go przypisać na "sztywno" , a co zrobisz w przypadku , jeśli numer frame będzie ulegał zmianie , co refresh strony ?

naprzykład :

Cytat:FRAME F=2
EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>FORM>FIELDSET>UL>LI:nth-of-type(6)>INPUT" BUTTON=0

Ten kod klika w button "verify" po wyklikaniu obrazków , ale tylko pod warunkiem , że podasz numer frame "FRAME F=2"
Tak jak wspomniałem wyżej , po odświeżeniu strony numer frame się zmieni na np "FRAME F=23" i wtedy kod nie zadziała Big Grin
dlatego proponuję zacząć pisanie macro z pomocą java scriptu , w którym bezproblemowo można znaleźć bierzący numerek FRAME .
Sam napisałem taki kodzik , ale celowo nie podam ,bo może wtedy zmobilizuje Cię do wysilenia troszkę mózgownicy , a nie przepisywania , czegoś czego w 80% nie rozumiesz Big Grin ...Pozdrawiam i powodzenia Smile


RE: iMacros + 2Captcha do reCAPTCHA - JFR147 - 30-12-2015 19:10

ok, tyle że w przypadku strony na której znajduje się mój formularz sprawa jest uproszczona i zmiana frejmów ogranicza się do 1 lub 2 na poziomie:

Kod:
FRAME F=2
EVENT TYPE=CLICK SELECTOR="#recaptcha-anchor>DIV:nth-of-type(5)" BUTTON=0

lub

Kod:
FRAME F=1
EVENT TYPE=CLICK SELECTOR="#recaptcha-anchor>DIV:nth-of-type(5)" BUTTON=0

więc może istnieje jakiś prosty skrypt w iMacros, który po błędnym frame f=1 przejdzie po prostu do frame f=2 i zacznie całą operacje od tego momentu ?


RE: iMacros + 2Captcha do reCAPTCHA - TheBot - 31-12-2015 14:58

(30-12-2015 19:10)JFR147 napisał(a):  ok, tyle że w przypadku strony na której znajduje się mój formularz sprawa jest uproszczona i zmiana frejmów ogranicza się do 1 lub 2 na poziomie:

To nie ma znaczenia , czy numer frame jest w zakresie od 1-2 czy tez od 1-50, tak czy siak jest zmienne , w obydwóch przypadkach MUSISZ znaleźć odpowiedni numer ...

Jak już pisałem wyżej java script będzie tu najlepszym rozwiązaniem ...Możesz to zwarunkować na podstawie błędu imacros , bo jeżeli numer frame będzie zły , macro nie kliknie w dany element i wypluje błąd ,poniższy przykład ma za zadanie odszukać odpowiedni numer frame i kliknąć checkBox "I'm not a robot".

Cytat:
var mframe = 1;
while(true)
{

var init_macro = "CODE:";
init_macro += "TAB T=1" + "\n";
init_macro += "SET !ERRORIGNORE NO" + "\n"; //Nie może ignorowac błędu
init_macro += "FRAME F=" + mframe + "\n"; //numer frame
init_macro += "SET !TIMEOUT_STEP 1" + "\n";
init_macro += "TAG POS=1 TYPE=DIV ATTR=ROLE:presentation&&CLASS:recaptcha-checkbox-checkmark" + "\n";
iimPlay(init_macro);

mframe++ //zwiększa numer frame o 1 , co każda pętla

// tu jest warunek , jeśli macro wywali błąd (będzie błędny numer frame i nie kliknie elementu )
error_message = iimGetLastError();
if (error_message !== 'OK')
{
continue; // będzie kontynuował pętlę i zwiększał mframe za każdym razem o "1"
}
else // jeśli błędu nie wywali (kliknie w dany element*(czyli numer będzie odpowiedni)
{
// Twój code
break;
}
}