Menos mal que te decides aponerme la página web. Gracias ha eso ya se que pasa con el código
.
Pues resulta que los últimos códigos están bien. Y te preguntarás, por que no funcionan? Sí funcionan, lo que pasa que por alguna causa no encuentran lo que quieres. Que tienes que hacer en estos casos? tienes que ver que código html te devuelve el script.
Pues bien, lo miré y resulta que te devuelve el código un poquitín cambiado con el que se genera cuando entrar tú directamente a la página. Por esta causa no coinciden las expresiones a buscar y por eso no encuentra nada.
Un ejemplo: el código html en la página cargada por tí te devuelve esto:
En cambio el código html que te devuelve el script es así:
Te das cuenta del problema?? El problema está en que nosotros poníamos
Código: Seleccionar todo
$LinksBueno=StringRegExp($vectorH4[$n],'<a href="(.*?)"',1)
cuando debería ser
Código: Seleccionar todo
$LinksBueno=StringRegExp($vectorH4[$n],'href="(.*?)"',1)
Observa lo anterior y verás
.
Cambiando simplemente eso en cualquiera de los dos script (el de expresiones regulares o el de _StringBetween, funcionan perfectamente.
La verdad es que una cosa así te puede volver loco, porque, a que cuento te cambia eso? No lo se ni lo voy a investigar.......paso
.
Pero al tener el código a la vista he pensado que se puede mejorar el script. Por que coger todos los links.....los malos y los buenos para luego tener que compararlos y buscar los buenos???. Se puede optimizar el código haciendo una expresión regular mejor para que solo coja los buenos y luego solo tendrás que mostrarlos con un for....next, sin tener que hacer una condición con StringInStr:
Código: Seleccionar todo
#include <IE.au3>
#include <array.au3>
Dim $TodosLinks=""
Local $oIE = _IECreate("http://wavebux.com/ads.php")
Local $TextHtml=_IEDocReadHTML($oIE)
$vectorH4=StringRegExp($TextHtml,'(?i)src="http://wavebux.com/images/ad_new.png"(.*?)</h4>', 3)
For $n=0 To UBound($vectorH4)-1
;aquí pon lo que quieras hacer con esos enlaces. Yo te los voy a almacenar en una variable para luego mostrarlos.
$LinksBueno=StringRegExp($vectorH4[$n],'href="(.*?)"',1)
$TodosLinks=$TodosLinks & $LinksBueno[0] & @CRLF
Next
MsgBox(0,"Liks imgen/listo.png",$TodosLinks)
La próxima vez ya sabes lo que tienes que hacer para no volvernos locos, darnos toda la información necesaria desde el principio.
Saludos.