Este código esta pronto pero me salta un error dentro del IE
El código es el siguiente
Código: Seleccionar todo
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <String.au3>
#include <IE.au3>
#include <GuiComboBox.au3>
#Region ### START Precedimentos internos ### Form=form1.kxf
$mPag_PagInicio = _IECreate("http://www.gallito.com.uy/autos/automoviles",0,0)
$SubIE ="";
$mString_HtmlInicio = _IEDocReadHTML($mPag_PagInicio);Inicia el Componente
_IELoadWait ($mPag_PagInicio)
$html_Format = _IEFormGetCollection ($mPag_PagInicio, 0)
$mCanTotalArticulos = 0 ; Cantidad de articulos de la pagina
$mCanTotalPaginas = 0; La cantidad de paginas que tiene que abrir para optener los anuncion
$mPagActual = 1;
$mCanAnun_X_Pagina = 0; Cantidad de anuncios por pagina
$mCanPagSelec = 1; Cantidad de paginas seleccionadas a descargar
$mCanAnunSelec = 0; Ctidad de anuncios a descargar
$mFileDestino = ""
setCanPage ()
$mCanAnunSelec = $mCanAnun_X_Pagina
Func _StringTrimLeft($pString)
Local $xSubString = "";
for $i = 1 to StringLen($pString) Step 1
$xSubString = StringLeft($pString,$i)
if StringIsSpace($xSubString) == 0 Then
Return StringTrimLeft($pString,$i - 1)
EndIf
Next
return $pString
EndFunc
Func _StringTrimRight($pString)
Local $xSubString = "";
for $i = 1 to StringLen($pString) Step 1
$xSubString = StringRight($pString,$i)
if StringIsSpace($xSubString) == 0 Then
Return StringTrimRight($pString,$i - 1)
EndIf
Next
return $pString
EndFunc
Func _StringTrim($pString)
$pString = _StringTrimLeft($pString)
$pString = _StringTrimRight($pString)
Return $pString
EndFunc
FUNC setCanPage ()
Local $xSubHTML = StringRegExp($mString_HtmlInicio,'Pag:(.*?)avisos</a>',1)
$xSubHTML = StringReplace ($xSubHTML[0], "de", "")
$xSubHTML = StringReplace ($xSubHTML, "|", "")
$xSubHTML = StringRegExp($xSubHTML," (.*?) ",3)
$mCanTotalArticulos = Int ($xSubHTML[2])
$mCanTotalPaginas = Int ($xSubHTML[1])
$mPagActual = Int ($xSubHTML[0])
$mCanAnun_X_Pagina = Round($mCanTotalArticulos/$mCanTotalPaginas)
EndFunc
;Me retorna una cadena con el formato adecuado para el combo box en la cual posee nuemors correlativos del 1 a xCant
Func getItemComB ($xCant)
Local $xSepara = "" ;Separador
Local $xRespuesta = ""
For $i = 1 to $xCant Step 1
$xRespuesta = $xRespuesta & $xSepara & $i
$xSepara = "|"
Next
Return $xRespuesta
EndFunc
;Comando que carga los topes de que pagina asta que pagina ba a optener los datos
Func calRanPagina ($pComB_Asta, $pLbl_Anuncios)
Local $xResto = 0;
$mCanPagSelec = _GUICtrlComboBox_GetCurSel($pComB_Asta) + 1
If $mCanPagSelec = $mCanTotalPaginas Then
$xResto = Mod ($mCanTotalArticulos,$mCanAnun_X_Pagina)
if $xResto <> 0 Then
$xResto = $mCanAnun_X_Pagina - $xResto;
EndIf
EndIf
$mCanAnunSelec = $mCanPagSelec * $mCanAnun_X_Pagina - $xResto
GUICtrlSetData($pLbl_Anuncios, $mCanAnunSelec)
EndFunc
Func IniciarProceso ($pPrB_Descarga, $pPrB_Pros, $pLbl_Destino, $pComB_Asta, $pLbl_Anuncios)
Local $xPors, $xPors2, $i, $i2, $array;
if StringCompare($mFileDestino, "") == 0 Then
setDestino ($pLbl_Destino)
if StringCompare($mFileDestino, "") == 0 Then
MsgBox(0,"Error","Debe ingresar un destino para los anuncios")
Return
EndIf
EndIf
setCanPage()
calRanPagina($pComB_Asta,$pLbl_Anuncios)
FileDelete($mFileDestino)
$xPors = 100 / $mCanPagSelec
$SubIE = _IECreate("http://www.google.com.uy/",0,0)
for $i = 1 to $mCanPagSelec Step 1
$array = StringRegExp($mString_HtmlInicio,'<div id="grillaavisos">(.*?)</span></div></div>',1)
$array = StringRegExp($array[0],'href="(.*?)"',3)
$LinkSigiente = _IEGetObjById($html_Format, "rptPager_lnkPage_13")
_IEAction($LinkSigiente, "click")
$xPors2 = 100 / UBound($array)
for $i2 = 0 to UBound($array) -1 Step 2
FileWrite($mFileDestino,prosURL($array[$i2]))
GUICtrlSetData($pPrB_Pros, Round($xPors2 * $i2))
Next
GUICtrlSetData($pPrB_Pros, 0)
GUICtrlSetData($pPrB_Descarga, Round($xPors * $i))
$mString_HtmlInicio = _IEDocReadHTML($mPag_PagInicio);Inicia el Componente
Next
_IEQuit($SubIE)
_IEQuit($mPag_PagInicio)
$mPag_PagInicio = _IECreate("http://www.gallito.com.uy/autos/automoviles",0,0)
$mString_HtmlInicio = _IEDocReadHTML($mPag_PagInicio);Inicia el Componente
_IELoadWait ($mPag_PagInicio)
$html_Format = _IEFormGetCollection ($mPag_PagInicio, 0)
setCanPage ()
GUICtrlSetData($pPrB_Descarga, 0)
EndFunc
Func prosURL($pURL)
;~
Local $SubHTML, $array, $SubS_Telefono = "", $SugS_Ubicacion = "" , $SubS_Precio= "", $SubS_Veiculo = "", $SubString;
Sleep(5000)
_IENavigate($SubIE,$pURL)
$SubHTML = _IEDocReadHTML($SubIE);Inicia el Componente
$array = _StringBetween($SubHTML, '<div id="ficha_cabezal">', '</span> </div>')
if UBound($array) = 0 Then
FileWrite(@ScriptDir &"\Salida_E.txt",$pURL & chr(13))
return ""
EndIf
$SubString = $array[0]
$SubString = $SubString & '</span>'
$array = StringRegExp($SubString,'<span id="ficha_titulo">(.*?)</span>',1)
if UBound($array) > 0 Then $SubS_Veiculo = $array[0]
$array = _StringBetween($SubString, '<span id="ficha_precio">', '</span>')
if UBound($array) > 0 Then $SubS_Precio = StringReplace ($array[0]," ","")
$array = _StringBetween($SubString, '<span id="ficha_ubicacion">', '</span>')
if UBound($array) > 0 Then $SugS_Ubicacion = $array[0]
$array = _StringBetween($SubString, '<span id="ficha_telefono">', '</span>')
if UBound($array) > 0 Then $SubS_Telefono = $array[0]
return $SubS_Veiculo & " " & $SubS_Precio & " " & $SugS_Ubicacion & " " & $SubS_Telefono & Chr(13)
EndFunc
Func setDestino ($pLbl_Destino)
$mFileDestino = FileSaveDialog("Destino", @ScriptDir, "Texto (*.Txt)", 16)
If StringCompare($mFileDestino, "") = 1 and StringRight($mFileDestino, 4) <> ".Txt" Then $mFileDestino = $mFileDestino & ".Txt"
GUICtrlSetData($pLbl_Destino, $mFileDestino)
EndFunc
Func _Salir ()
_IEQuit($mPag_PagInicio)
Exit
EndFunc
#EndRegion ### END Precedimentos internos ###
#Region ### START Koda GUI section ### Form=form1.kxf
$Form1_1 = GUICreate("Gallito luis", 840, 255, 192, 178)
GUISetIcon(@ScriptDir &"\Cabriolet.ico", -1)
$PrB_Descarga = GUICtrlCreateProgress(16, 120, 807, 17)
$Group1 = GUICtrlCreateGroup("Origen", 128, 16, 321, 73)
$Label3 = GUICtrlCreateLabel("Cantidad", 144, 40, 54, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x3399FF)
$Lbl_CanP = GUICtrlCreateLabel($mCanTotalPaginas, 144, 56, 54, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xFFFFE1)
$Group3 = GUICtrlCreateGroup("", 208, 24, 233, 57)
$Btn_Cargar = GUICtrlCreateButton("", 408, 31, 32, 49, $BS_ICON)
GUICtrlSetImage(-1, @ScriptDir & "\IM\button-synchronize.ico", -1)
$Label5 = GUICtrlCreateLabel("Anuncios", 344, 36, 56, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x3399FF)
$Lbl_Anuncios = GUICtrlCreateLabel($mCanAnunSelec, 344, 56, 56, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xFFFFE1)
$Label1 = GUICtrlCreateLabel("Paginas", 218, 36, 112, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x3399FF)
$ComB_Asta = GUICtrlCreateCombo("", 216, 56, 113, 25, BitOR($GUI_SS_DEFAULT_COMBO,$CBS_SIMPLE))
GUICtrlSetData(-1, getItemComB($mCanTotalPaginas), "1")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label6 = GUICtrlCreateLabel("Paginar rebisadas", 16, 95, 807, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x3399FF)
$Label7 = GUICtrlCreateLabel("Anuncios descargados", 16, 143, 807, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x3399FF)
$PrB_Pros = GUICtrlCreateProgress(16, 168, 807, 17)
$Btn_Inicoi = GUICtrlCreateButton("Iniciar", 8, 208, 139, 33)
$Btn_Detener = GUICtrlCreateButton("Detener", 676, 208, 139, 33)
$Btn_Salir = GUICtrlCreateButton("Salir", 232, 208, 347, 33)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\IM\GL.jpg", 24, 16, 92, 68)
$Group2 = GUICtrlCreateGroup("Destino", 456, 16, 369, 73)
$Label12 = GUICtrlCreateLabel("Anuncios", 464, 40, 344, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x3399FF)
$Lbl_Destino = GUICtrlCreateLabel("", 464, 58, 320, 25)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xFFFFE1)
$Btn_Destino = GUICtrlCreateButton("...", 784, 58, 27, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_Salir()
Case $Btn_Cargar
calRanPagina($ComB_Asta,$Lbl_Anuncios)
Case $Btn_Salir
_Salir()
Case $Btn_Inicoi
GUICtrlSetState($Btn_Inicoi, $GUI_DISABLE)
IniciarProceso ($PrB_Descarga, $PrB_Pros, $Lbl_Destino, $ComB_Asta, $Lbl_Anuncios)
GUICtrlSetState($Btn_Inicoi, $GUI_ENABLE)
Case $Btn_Destino
setDestino ($Lbl_Destino)
EndSwitch
WEnd
Yo intenté colocarle un Sleep(5000) antes del _IENavigate($SubIE,$pURL) para darle un poco de tiempo ya que creo que es ese el problema
El mensaje que me da es el siguiente:
>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\Martin García\Dropbox\Compartido con Ary\Gallito luis\Gallito luis.au3" /UserParams
+>01:54:03 Starting AutoIt3Wrapper v.2.1.0.33 Environment(Language:0C0A Keyboard:0000040A OS:WIN_7/ CPU:X64 OS:X86)
>Running AU3Check (1.54.22.0) from:C:\Program Files\AutoIt3
+>01:54:03 AU3Check ended.rc:0
>Running:(3.3.8.1):C:\Program Files\AutoIt3\autoit3.exe "C:\Users\Martin García\Dropbox\Compartido con Ary\Gallito luis\Gallito luis.au3"
--> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
C:\Program Files\AutoIt3\Include\IE.au3 (2034) : ==> The requested action with this object has failed.:
Return SetError($_IEStatus_Success, 0, $o_object.document.documentElement.outerHTML)
Return SetError($_IEStatus_Success, 0, $o_object.document.documentElement.outerHTML^ ERROR
->02:15:30 AutoIT3.exe ended.rc:1
>Exit code: 1 Time: 1288.906