Automazione di ricerca su diversi siti

« Older   Newer »
  Share  
tonyghost
CAT_IMG Posted on 10/2/2015, 16:41     +1   -1




Vorrei creare un boot che in automatico lavora su diversi siti come ebay amazon eprice...
dovrebbe autenticarsi, selezionare una categoria es. elettronica(o scelto dall'utente) ed inserire nel campo ricerca un dato inserito dall'utente in una inputbox.
da questo forum,non ricordo l'utente, ho trovato una bella gui che ho iniziato a modificare ma poi mi sono perso e non riesco ad andare avanti.

$oIE = ObjCreate("Shell.Explorer.2")

Dim $planets[12]
Dim $moons[12]
$station = 0

$Form1 = GUICreate("ebay", 862, 560, 192, 124)
$Group1 = GUICtrlCreateGroup("userid1", 8, 8, 353, 113)
$Input1 = GUICtrlCreateInput("", 95, 32, 153, 21)
$Label1 = GUICtrlCreateLabel("Username2", 24, 32, 52, 17)
$Input2 = GUICtrlCreateInput ("", 90, 64, 153, 21)
$Label2 = GUICtrlCreateLabel("pass", 24, 64, 50, 17)
$Button1 = GUICtrlCreateButton("press", 272, 32, 67, 25)
$Checkbox1 = GUICtrlCreateCheckbox("Auto userid", 272, 72, 73, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Label3 = GUICtrlCreateLabel("Status:", 88, 96, 37, 17)
$Label4 = GUICtrlCreateLabel("non connesso", 136, 96, 150, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Tab1 = GUICtrlCreateTab(8, 128, 849, 425)
$TabSheet1 = GUICtrlCreateTabItem("ebay")
$oIE_ctrl = GUICtrlCreateObj($oIE, 16, 152, 833, 393)
_IENavigate($oIE, "https://signin.ebay.it/ws/eBayISAPI.dll?SignIn&errmsg=8&pUserId=&co_partnerId=2&siteid=101&pageType=-1&pa1=&i1=-1&UsingSSL=1&k=1&favoritenav=&ru=http%3A%2F%2Fwww.ebay.it%2F&pp=&bshowgif=0&gu=0&ifh=0=", 0)
$TabSheet2 = GUICtrlCreateTabItem("amazon")
GUICtrlCreateTabItem("XXX")

GUISetState(@SW_SHOW)

If (GUICtrlRead($CheckBox1) = $GUI_CHECKED) Then
_userid()
EndIf

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If (GUICtrlRead($Label4) <> "connesso") Then
_userid()
ConsoleWrite("OK"&@CRLF)
_getPlanets()
EndIf
EndSwitch
WEnd

Func _getPlanets()
ConsoleWrite("enter getplanets"&@CRLF)
$src = _IEDocReadHTML($oIE)
ConsoleWrite("read html"&@CRLF)
$plan = _StringBetween($src, '&re=0', '<option value="?cp=')
ConsoleWrite("stringbetween"&@CRLF)
_ArrayDisplay($plan)
ConsoleWrite("display array"&@CRLF)
EndFunc

Func _userid()
If (GUICtrlRead($Input1) = '') OR (GUICtrlRead($Input2) = '') Then
; MsgBox(16, "Errore", "Devi prima inserire i tuoi dati!")
Return
EndIf
GUICtrlSetData($Label4, "connessione in corso...")
GUICtrlSetColor($Label4, 0x808000)
_IELoadWait($oIE)

;inserisco i dati
$oUser = _IEGetObjById($oIE, "username")
_IEFormElementSetValue($oUser, GUICtrlRead($Input1), 0)
$oPass = _IEGetObjById($oIE, "pass")
_IEFormElementSetValue($oPass, GUICtrlRead($Input2), 0)

;premo 'userid'
$oLogForm=_IEFormGetCollection($oIE, 0)
_IEFormSubmit($oLogForm, 0)
_IELoadWait($oIE)

;seleziono l'universo
_IENavigate($oIE, "http://noirblack.net/?page=logged&uni_id=1", 1)

;vado in 'overview'
_IENavigate($oIE, "http://black.noirblack.net/overview.php", 1)

;cambio lo status nella GUI
GUICtrlSetData($Label4, "connesso")
GUICtrlSetColor($Label4, 0x00FF00)
ConsoleWrite("exiting _userid...")
EndFunc


inoltre volevo chiedere se qualcuno ha delle guide per quanto riguarda i comandi del tipo _ienavigate,IEFormElementSetValue
_IEFormElementGetObjByName
_IEFormGetCollection
e le varie istruzioni che permettono di automatizzare la navigazione.
in italiano non ho trovato nulla.
si accettano consigli anche sulle modifiche del progetto.
grazie mille
 
Top
tonyghost
CAT_IMG Posted on 6/3/2015, 20:27     +1   -1




Sono riuscito a trovare una soluzione. un po' grezza ma funziona.
ho creati 3 script diversi

#include<ie.au3>
$sUsername = "indirizzo posta elettronica"
$sPassword = "la tua password"
$try="samsung"; quello che voglio cercare nel web
Do
Global $oIE = _IECreate("https://signin.ebay.it/ws/eBayISAPI.dll?SignIn&ru=http%3A%2F%2Fwww.ebay.it%2F", 0, 1, 0, 1)
_IELoadWait($oIE)

$oHWND = _IEPropertyGet($oIE, "hwnd")
WinSetState($oHWND, "", @SW_MAXIMIZE)
$oForm = _IEFormGetCollection($oIE, 0)
$oUsername =_IEFormElementGetObjByName($oForm ,"userid")
$oPassword = _IEFormElementGetObjByName($oForm, "pass")
_IEFormElementSetValue($oUsername, $sUsername)
_IEFormElementSetValue($oPassword, $sPassword)
_IEFormSubmit($oForm)
_IELoadWait($oForm)
Until 1=2
exit



#include <ie.au3>

Local $oIE = _IECreate("http://www.amazon.it")
Local $oForm = _IEFormGetCollection($oIE, 0)
Local $oQuery = _IEFormElementGetCollection($oForm,3 )
_IEFormElementSetValue($oQuery, "samsung")
_IEFormSubmit($oForm)




#include <ie.au3>

Local $oIE = _IECreate("http://www.amazon.it")
Local $oForm = _IEFormGetCollection($oIE, 0)
Local $oQuery = _IEFormElementGetCollection($oForm,3 )
_IEFormElementSetValue($oQuery, "samsung")
_IEFormSubmit($oForm)


questi 3 script li ho convertiti in eseguibili e creato un ultimo eseguibile
Run("prova automatizzata.exe")
Sleep(3000)
run("autom_google.exe")
sleep(3000)
run("autom_amazon.exe")
exit

ho provato a farne uno solo e a cambiare le variabili ma mi da' errore.
indubbiamnte si puo fare di meglio!
 
Top
1 replies since 10/2/2015, 16:41   98 views
  Share