Foro Black Hat SEOArchivo · solo lectura
RankHispano

¿Quieres que se conozca tu proyecto?

Da de alta gratis tu proyecto en menos
de un minuto gracias a la IA
en RankHispano.com

Ayuda - Como usar la sentencia if en iMacros

Iniciado por MariaMaria · 11 feb 2016 · 3 respuestas · 8302 visitas

  1. MariaMaria
    Hola a todos, estoy armando un script con iMacros para resolver captchas en un juego que se llama ikariam.
    El script es el siguiente:

    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 :)
  2. AUZOLANO
    no se pueden usar condicionales en imacro
  3. MariaMaria
    AUZOLANO, gracias por responder.
    Qué lastima que no haya condicionales en esta gran herramienta :(
  4. Miguel2008
    Buenas que tal.

    ummm, tienes dos opciones.

    - La primera:
    Aclaro que no he mirado tu código, PERO si pones esto en la primera linea
    SET !ERRORIGNORE YES


    Y ocurre un error "en imacros", no para la ejecución y sigue a la siguiente sentencia.
    Lo digo por que así te valdría para saltarte el error y seguir con tu "bucle"

    -La segunda:
    Imacros te permite imm y js , en codigo imm no permite sentencias de control, pero en js puedes hacer sentencias de control.

    Podrías cambiar tu código y adaptarlo a js para imm dónde si puedes poner sentencias de control.

Este hilo pertenece al archivo del foro y ya no admite respuestas.

Otros hilos de esta sección