dadalt95 Posted June 14, 2018 Share Posted June 14, 2018 Hi! I want to get the signal in this website: https://binary-signal.com/pt/chart/eurusd I have tried using _IEBodyReadText and some _StringBetween. What happens is that the text are being update every tick and _IEBodyReadText doesn't. To perform the update I used _IEAction($oIE, "refresh") but it's not good because the website block me after some time due too many requests.. Is there any other way to get this text every tick? PS: The text I want to get is WAIT, CALL or PUT. Here is the code: expandcollapse popupglobal $oIE = _IECreate ('https://binary-signal.com/pt/chart/eurusd', 0, 1 , 1 , 0) Local $sText = _IEBodyReadText($oIE) $result = _StringBetween ( $sText , 'PUTEUR/USD on Binary-signal.com', 'sinal está PRONTA') ;MsgBox ( 0, "asf", $result[0]) $espera=StringInStr($result[0], "WAIT") $compra=StringInStr($result[0], "CALL") $venda=StringInStr($result[0], "PUT") ;MsgBox($MB_SYSTEMMODAL, "", $espera) $n=0 $c=0 Captar() Func Captar() ;_IENavigate($oIE, "https://binary-signal.com/pt/chart/eurusd") ;MsgBox($MB_SYSTEMMODAL, "", $n) Local $sText = _IEBodyReadText($oIE) $result = _StringBetween ( $sText , 'PUTEUR/USD on Binary-signal.com', 'sinal está PRONTA') If (Not $compra=0) And $n=0 Then MsgBox($MB_SYSTEMMODAL, "", "COMPRE") $n=1 $c=$c+1 ;_IEAction($oIE, "refresh") Sleep(60000) Captar() ElseIf (Not $venda=0) And $n=0 Then MsgBox($MB_SYSTEMMODAL, "", "VENDA") $c=$c+1 $n=1 ;_IEAction($oIE, "refresh") ;MsgBox($MB_SYSTEMMODAL, "", $n) Sleep(60000) Captar() ElseIf (Not $venda=0) And $n=1 Then ;MsgBox($MB_SYSTEMMODAL, "", "Esperando próxima rodada") $n=1 ;MsgBox($MB_SYSTEMMODAL, "", $n) ;_IEAction($oIE, "refresh") Sleep(60000) Captar() ElseIf (Not $venda=0) And $n=1 Then ;MsgBox($MB_SYSTEMMODAL, "", "Esperando próxima rodada") $n=1 ;MsgBox($MB_SYSTEMMODAL, "", $n) ;_IEAction($oIE, "refresh") Sleep(60000) Captar() Else ;MsgBox("", "", "ESPERE") $n=0 Sleep(1000) ;_IEAction($oIE, "refresh") Local $sText = _IEBodyReadText($oIE) $result = _StringBetween ( $sText , 'PUTEUR/USD on Binary-signal.com', 'sinal está PRONTA') Captar() EndIf EndFunc Link to comment Share on other sites More sharing options...
Danp2 Posted June 14, 2018 Share Posted June 14, 2018 This should be doable with Jquerify, but I've not been able to make it work. Maybe @Chimp will jump in here with a solution. Latest Webdriver UDF Release Webdriver Wiki FAQs Link to comment Share on other sites More sharing options...
dadalt95 Posted June 15, 2018 Author Share Posted June 15, 2018 Not it's working! expandcollapse popupglobal $oIE = _IECreate ('https://binary-signal.com/pt/chart/eurusd', 0, 1 , 1 , 0) Local $sText = _IEBodyReadText($oIE) $result = _StringBetween ( $sText , 'PUTEUR/USD on Binary-signal.com', 'sinal está PRONTA') ;MsgBox ( 0, "asf", $result[0]) $espera=StringInStr($result[0], "WAIT") $compra=StringInStr($result[0], "CALL") $venda=StringInStr($result[0], "PUT") ;MsgBox($MB_SYSTEMMODAL, "", $espera) $n=0 $c=0 $i=1 $hstart = _NowCalc() Captar() Func Captar() ;MsgBox($MB_SYSTEMMODAL, '', "The time is: " & $hstart ) Local $iDateCalc = _DateDiff('n', $hstart, _NowCalc()) If $iDateCalc = 1*$i Then ;depois fazer esse 14 * i $i=$i+1 _IEAction($oIE, "refresh") ;MsgBox($MB_SYSTEMMODAL, "", "Number of Hours this year: " & $iDateCalc) EndIf ;_IENavigate($oIE, "https://binary-signal.com/pt/chart/eurusd") ;MsgBox($MB_SYSTEMMODAL, "", $n) Local $sText = _IEBodyReadText($oIE) $result = _StringBetween ( $sText , 'PUTEUR/USD on Binary-signal.com', 'sinal está PRONTA') $espera=StringInStr($result[0], "WAIT") $compra=StringInStr($result[0], "CALL") $venda=StringInStr($result[0], "PUT") ;MsgBox($MB_SYSTEMMODAL, "", $result[0]) ;MsgBox($MB_SYSTEMMODAL, "", $compra) ;MsgBox($MB_SYSTEMMODAL, "", $n) If (Not $compra=0) And $n=0 Then MsgBox($MB_SYSTEMMODAL, "", "COMPRE") $n=1 $c=$c+1 Sleep(60000) Captar() ElseIf (Not $venda=0) And $n=0 Then MsgBox($MB_SYSTEMMODAL, "", "VENDA") $c=$c+1 $n=1 ;MsgBox($MB_SYSTEMMODAL, "", $n) Sleep(60000) Captar() ElseIf (Not $compra=0) And $n=1 Then ;;;FAZER COM A MENSAGEM QUE APARECE DE PROFIR OR LOSS ;MsgBox($MB_SYSTEMMODAL, "", "Esperando próxima rodada") $n=1 ;MsgBox($MB_SYSTEMMODAL, "", $n) Sleep(30000) Captar() ElseIf (Not $venda=0) And $n=1 Then ;;;FAZER COM A MENSAGEM QUE APARECE DE PROFIR OR LOSS ;MsgBox($MB_SYSTEMMODAL, "", "Esperando próxima rodada") $n=1 ;MsgBox($MB_SYSTEMMODAL, "", $n) Sleep(30000) Captar() Else ;MsgBox("", "", "ESPERE") $n=0 ;Sleep(1000) Local $sText = _IEBodyReadText($oIE) $result = _StringBetween ( $sText , 'PUTEUR/USD on Binary-signal.com', 'sinal está PRONTA') Captar() EndIf EndFunc The problem now is that is that I am getting an error: "C:\Program Files (x86)\AutoIt3\Include\Date.au3" (1220) : ==> Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.: Local $aDays = [12, 31, (_DateIsLeapYear($iYear) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] I think that error is because I am updating $iDateCalc every tick, is this correct? Local $iDateCalc = _DateDiff('n', $hstart, _NowCalc()) Link to comment Share on other sites More sharing options...
Danp2 Posted June 15, 2018 Share Posted June 15, 2018 Haven't really reviewed the entire code, but I suspect the error is due to you calling the Captar function from within itself. Latest Webdriver UDF Release Webdriver Wiki FAQs Link to comment Share on other sites More sharing options...
Danyfirex Posted June 15, 2018 Share Posted June 15, 2018 You can do somthing like this: expandcollapse popup; Attach to a browser with "AutoIt" in its title, display the URL #include <IE.au3> #include <MsgBoxConstants.au3> HotKeySet("{ESC}", "Terminate") Global $oIE = _IECreate("https://binary-signal.com/pt/chart/eurusd") ;~ ConsoleWrite(IsObj($oIE) & @CRLF) Local $oChart = _IEGetObjById($oIE, "chart") ;~ ConsoleWrite(IsObj($oChart) & @CRLF) Local $oTexts = _IETagNameGetCollection($oChart, "text") ;~ ConsoleWrite(IsObj($oTexts) & @CRLF) Local $oTextLabel = 0 For $oText In $oTexts If StringRegExp(_IEPropertyGet($oText, "outertext"), '\d+.\d+ (WAIT|PUT|CALL)') Then $oTextLabel = $oText ExitLoop EndIf Next Local $sTempValue = _IEPropertyGet($oTextLabel, "outertext") ConsoleWrite("Current Value: " & $sTempValue & @CRLF) Local $sNewValue = "" While Sleep(100) $sNewValue = _IEPropertyGet($oTextLabel, "outertext") If $sNewValue <> $sTempValue Then ConsoleWrite("Value Changed: " & $sNewValue & @CRLF) $sTempValue = $sNewValue EndIf WEnd Func Terminate() _IEQuit($oIE) Exit EndFunc ;==>Terminate Func _IEGetObjByClass(ByRef $o_object, $s_Class, $i_index = 0) If Not IsObj($o_object) Then __IEConsoleWriteError("Error", "_IEGetObjByClass", "$_IEStatus_InvalidDataType") SetError($_IEStatus_InvalidDataType, 1) Return 0 EndIf ; If Not __IEIsObjType($o_object, "browserdom") Then __IEConsoleWriteError("Error", "_IEGetObjByClass", "$_IEStatus_InvalidObjectType") SetError($_IEStatus_InvalidObjectType, 1) Return 0 EndIf ; Local $i_found = 0 ; $o_tags = _IETagNameAllGetCollection($o_object) For $o_tag In $o_tags If String($o_tag.className) = $s_Class Then If ($i_found = $i_index) Then SetError($_IEStatus_Success) Return $o_tag Else $i_found += 1 EndIf EndIf Next ; __IEConsoleWriteError("Warning", "_IEGetObjByClass", "$_IEStatus_NoMatch", $s_Class) SetError($_IEStatus_NoMatch, 2) Return 0 EndFunc ;==>_IEGetObjByClass Saludos Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now