11-02-2016, 08:47 PM
Hola a todos, estoy armando un script con iMacros para resolver captchas en un juego que se llama ikariam.
El script es el siguiente:
En este juego, cada 2 minutos se puede hacer una misión, pero cada 12 o 20 misiones aparece una captcha. Esta captcha la logro resolver.
Sin embargo, cuando el captcha no aparece, la línea
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:index.php ATTR=*
me genera un error en el juego.
Lo que quiero es hacer el código mas eficiente y ver si se puede, con la sentencia IF o de alguna otra forma, que cuando aparezca el captcha se ejecute la captura y su resolución, pero cuando no aparezca el captcha ese código de captura y resolución, no se ejecute.
Alguien podrá darme una mano?
Desde ya muchas gracias.
María.
PD: Aclaro que no soy programadora y todo lo hago de manera amateur. Este código me llevó mas de 7 hs, ese es mi nivel de conocimiento de programación , Obviamente tuve que leer mucho y probar varias cosas antes de lograr que fucione medianamente bien el código anterior. Tenganmé paciencia
El script es el siguiente:
Código:
VERSION BUILD=8961227 RECORDER=FX
TAB T=1
URL GOTO=https://s2-ar.ikariam.gameforge.com/index.php?view=
TAG POS=1 TYPE=A ATTR=ID:js_CityPosition17Link
WAIT SECONDS=2
TAG POS=1 TYPE=A ATTR=TXT:Abordar
SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE YES
TAB T=1
FILEDELETE NAME=c:\captcha\1.png
ONDOWNLOAD FOLDER=c:\captcha FILE=1.png WAIT=YES
SET !TIMEOUT_STEP 10
CONTENT=EVENT:SAVE_ELEMENT_SCREENSHTO descarga la imagen
TAG POS=1 TYPE=IMG ATTR=CLASS:captchaImage CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT
TAB OPEN
TAB T=3
URL GOTO=http://www.9kw.eu/grafiik/form.html
SET !TIMEOUT_STEP 2
TAG POS=1 TYPE=INPUT ATTR=NAME:apikey CONTENT=
TAG POS=1 TYPE=INPUT ATTR=NAME:maxtimeout CONTENT=200
TAG POS=1 TYPE=INPUT ATTR=NAME:prio CONTENT=0
TAG POS=1 TYPE=INPUT ATTR=NAME:source CONTENT=
TAG POS=1 TYPE=INPUT ATTR=NAME:file--upload-01 CONTENT=c:\captcha\1.png
SET !TIMEOUT_PAGE 30
TAG POS=1 TYPE=INPUT ATTR=TYPE:submit
SET !TIMEOUT_STEP 120
TAG POS=1 TYPE=INPUT ATTR=NAME:result EXTRACT=TXT
TAB CLOSE
TAB T=1
SET !TIMEOUT_STEP 5
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:index.php ATTR=ID:captcha CONTENT={{!EXTRACT}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:index.php ATTR=*
URL GOTO=https://s2-ar.ikariam.gameforge.com/index.php?view=city&oldBackgroundView=worldmap_iso&containerWidth=1518px&containerHeight=981px&worldviewWidth=1518px&worldviewHeight=935px&worldmap_isoTop=-852.5px&worldmap_isoLeft=759px&worldmap_isoRight=&sideBarExt=0024c060a8aa2b5645903f9a4b96767a760fb5603b1
TAG POS=1 TYPE=A ATTR=TXT:Mostrar<SP>ciudad
SET !LOOP 12
En este juego, cada 2 minutos se puede hacer una misión, pero cada 12 o 20 misiones aparece una captcha. Esta captcha la logro resolver.
Sin embargo, cuando el captcha no aparece, la línea
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:index.php ATTR=*
me genera un error en el juego.
Lo que quiero es hacer el código mas eficiente y ver si se puede, con la sentencia IF o de alguna otra forma, que cuando aparezca el captcha se ejecute la captura y su resolución, pero cuando no aparezca el captcha ese código de captura y resolución, no se ejecute.
Alguien podrá darme una mano?
Desde ya muchas gracias.
María.
PD: Aclaro que no soy programadora y todo lo hago de manera amateur. Este código me llevó mas de 7 hs, ese es mi nivel de conocimiento de programación , Obviamente tuve que leer mucho y probar varias cosas antes de lograr que fucione medianamente bien el código anterior. Tenganmé paciencia