Buscar texto en web , y si aparece hacer X cosa.

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Buscar texto en web , y si aparece hacer X cosa.

Mensaje por iamchavo »

Hola buen dia, tengo una duda.
Cual seria el comando para que se detecte en el html de mi web el siguiente texto: Opps...

Ya que aparece cuando el usuario sube una imagen que sea mas chica de lo permitido.

Mi idea es que al detectarla aparesca un mensaje diciendo "La imagen es menor que 1366 x 768"

El cuadro que aparece en mi web es el siguiente ( dejo su codigo html )

Imagen


Código: Seleccionar todo

<input type="button" onclick="location.href='http://tolchx.com/fotos/agregar.php'" value="Volver" style="font-size:13px" class="button button-ok">
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Buscar texto en web , y si aparece hacer X cosa.

Mensaje por Chefito »

Seguramente puedes detectar esta situación simplemente analizando el código html que te devuelve la función _WinHttpSimpleSendRequest al agregar la imagen. Compara el código cuando si se sube la foto y cuando no. Pienso que en el que no la suba te de algún tipo de texto de error.
Para obtener el código, mira más arriba del código que te dí. Verás que utilizo una función llamada _WinHttpSimpleReadData.

Intenta algo a ver que te sale :smt003 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: Buscar texto en web , y si aparece hacer X cosa.

Mensaje por iamchavo »

Hola Chefito, mirando el codigo que me pasaste arme lo siguiente. aun no funciono pero seguire probando

Código: Seleccionar todo

Func _createtheme2()

   $hOpen2 = _WinHttpOpen()
   ; Get connection handle
   $hConnect2 = _WinHttpConnect($hOpen2, "tolchx.com")
   ; Make a request
   $hRequest2 = _WinHttpSimpleSendRequest($hConnect2, Default, "agregar.php")

	  If $hRequest2 Then
	   ; Simple-read...
	   $htmlWebpx=_WinHttpSimpleReadData($hRequest2)
	   ;recupero el token de la página web
	   $token=StringRegExp($htmlWebpx, 'Opps...', 1)
   Else
	   MsgBox(16, "Error", "Wallpaper elegido no supera el tamaño 1366 x 766 px" & @CRLF & "Error número: " & @error)
	   Return 0
   EndIf
EndFunc
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: Buscar texto en web , y si aparece hacer X cosa.

Mensaje por iamchavo »

Ya esta :)

El anterior codigo lo habia puesto en una funcion aparte, pero al fucionarlo con el que vos habias creado funciono.

Código: Seleccionar todo

Func _createtheme()

   $RandomNumber = Random(1, 99, 1)
   $final=$css1 & GUICtrlRead($pagina) & $css2
   ; Initialize and get session handle
   $hOpen = _WinHttpOpen()
   ; Get connection handle
   $hConnect = _WinHttpConnect($hOpen, "userstyles.org")
   ; Make a request
   $hRequest = _WinHttpSimpleSendRequest($hConnect, Default, "login/?view=password")

   $hConnect2 = _WinHttpConnect($hOpen, "tolchx.com/fotos/")
   ; Make a request
   $hRequest2 = _WinHttpSimpleSendRequest($hConnect2, Default, "agregar.php")

    If $hRequest2 Then
	   ; Simple-read...
	   $htmlWebpx=_WinHttpSimpleReadData($hRequest2)
	   ;recupero el token de la página web
	   $token=StringRegExp($htmlWebpx, 'Opps...', 1)
   Else
	   MsgBox(16, "Error", "Wallpaper elegido no supera el tamaño 1366 x 766 px" & @CRLF & "Error número: " & @error)
	   Return 0
   EndIf


   If $hRequest Then
	   ; Simple-read...
	   $htmlWebLogin=_WinHttpSimpleReadData($hRequest)
	   ;recupero el token de la página web
	   $token=StringRegExp($htmlWebLogin, 'name="authenticity_token".*?value="(.*?)"', 1)
   Else
	   MsgBox(16, "Error", "Error ocurrido al intentar conectarte a la web userstyles.org." & @CRLF & "Error número: " & @error)
	   Return 0
	EndIf
Gracias!! ,seguire avanzando con el programa, cualquier duda nos vemos por aca!
Exitos :)
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: Buscar texto en web , y si aparece hacer X cosa.

Mensaje por iamchavo »

Falsa alarma, pense que funcionaba, pero a medias jaja.
Cuando pongo una imagen que supera el tamaño 1366 x 768px , tambien aparece el cartel de error!

Se me ocurre que puede ser porque en el html que analiza esta puesto en el código la sección que busco: Opps...
Que corresponde al titulo del cartel en mi web.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Buscar texto en web , y si aparece hacer X cosa.

Mensaje por Chefito »

iamchavo escribió:Falsa alarma, pense que funcionaba, pero a medias jaja.
Pensaste mal. Ese código no funciona ni a medias ni a nada :smt009 .

No quieras hacer las cosas tan fáciles. Lo único que has hecho es copiar y pegar un trozo de mi código, y a tirar de él sin apenas cambios. Pues no! Mal hecho :smt018 .
Yo te comenté las funciones necesarias que tenías que utilizar para intentar hacerlo, y que te fijases un poco como había sacado el código html de las páginas web para luego poder analizarlo. Pensando un poquito se saca facilmente. Pero veo que fallas en lo básico.....mal vamos como no te apliques mucho más :smt024 .

Lo primero que tienes que hacer es lo que ya te dije anteriormente. Prueba a enviar una imagen con el tamaño correcto. Saca el código html y cópialo en un bloc de notas o donde sea para luego poder trabajar con él. Luego envía otra imagen con un tamaño erróneo (menor del que pides), y saca el código de esta otra respuesta. Compara esos dos códigos y mira a ver en que diferencias te puedes apoyar para saber si la imagen es subida o no. Seguro que hay algo en el código cuando no te deja subirla que te indica algún error o algo similar. Y casi seguro que en el código de cuando te deja subirla habrá algo que te indique que se ha subido con éxito o algo parecido.

Una vez que tengas la cadena de texto que diferencia una respuesta de otra, haz un simple if que indique que si encuentra esa cadena de texto, te ha dejado subirla, y sino, pues no se ha subido....o al revés. Simplemente es eso.

Lo que no puedes pretender es que te funcione un copia/pega, le pongas el if que indica si la función _WinHttpSimpleSendRequest ha devuelto una respuesta....que en tu caso te la devolverá casi siempre, por eso siempre se mete en este if y te lanza el cartel de error. El if que te dije al principio debe ir dentro de este otro if, y así estará bien. Y estoy casi seguro que el texto que has puesto en la búsqueda (Opps...), lo has puesto por poner, porque aparece en la ventana emergente. Ni si quiera habrás mirado si aparece en el código html de la respuesta que te da la función _WinHttpSimpleSendRequest cuando la imagen no tiene un tamaño correcto :smt009 .

Estudia más el código, más autoit, más lo básico, y con las instrucciones que te he dado inténtalo :smt024 .

Si por alguna casualidad el código html de una respuesta u otra no variase en nada (lo dudo mucho, mucho, mucho....pero mucho :smt033 ), habría otras maneras de hacerlo.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Responder