Доброго времени, ребят ;)
Пишу гуй для регистрации на сайте. Столкнулся с проблемой. Вроде как все POST-ы передаются нормально (тестировал в браузере ручками + HttpAnalyzer).. Но вот с капчей косяк. Не могу сохранить в файлу. Что то с передачей нужных кук.
Снифая analyzer-ом, вижу, что возвращает страничку логина.
Второй код получения каптчи, но без логина на акк, работает.
На быдлокод внимания не обращать, это тестовый скрипт.
Первый раз пишу что то с пост запросами. Прощу хелпа. Проект встал :(
http://zalil.ru/315909
Сниф нормального браузинга по сайту в XML.
Картинки и прочее срезал.
UP: С линком на капч разобрался.. Теперь думаю как передать куки и скачать ее..
UP2: Вроде качается. Но не могу в файлу записать.. Пишется только первые 8 байт.. Хелп.. Открываю в 16+2 режиме. :(
UP3: Гыыы. Как всегда на мои проблемы хрен кто ответит
UP4: Вроде решил. :laugh: По закону подлости никто не помогает. Ни один форум
Ну мои запросы как всегда. ;D
Пишу гуй для регистрации на сайте. Столкнулся с проблемой. Вроде как все POST-ы передаются нормально (тестировал в браузере ручками + HttpAnalyzer).. Но вот с капчей косяк. Не могу сохранить в файлу. Что то с передачей нужных кук.
Код:
#include <IE.au3>
#include <Array.au3>
#include <String.au3>
$sEmail = "[email protected]"
$sPass = "testuser"
$sDomain = "kkkwlwlw335"
$sID = ""
Global $cookie, $sCookie
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", "http://my.dot.tk/cgi-bin/login02.taloha")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("User-Agent", "Opera/9.80 (Windows NT 6.1; U; Edition Next; ru) Presto/2.9.186 Version/12.00")
$oHTTP.SetRequestHeader("Host", "my.dot.tk")
$oHTTP.SetRequestHeader("Accept", "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1")
$oHTTP.SetRequestHeader("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8")
$oHTTP.SetRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.SetRequestHeader("Referer", "http://my.dot.tk/cgi-bin/login01.taloha")
$oHTTP.SetRequestHeader("Cookie", "bgnr=2")
$oHTTP.SetRequestHeader("Connection", "Keep-alive")
$oHTTP.SetRequestHeader("Content-Length", "53")
$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.Send('fldemail=' & $sEmail & '&fldpassword=' & $sPass)
$oHTTP.WaitForResponse
$resp = $oHTTP.ResponseText
_Cookies()
$oHTTP.Open("POST", "http://my.dot.tk/cgi-bin/rnt1000.taloha/CheckAvailability")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("User-Agent", "Opera/9.80 (Windows NT 6.1; U; Edition Next; ru) Presto/2.9.186 Version/12.00")
$oHTTP.SetRequestHeader("Host", "my.dot.tk")
$oHTTP.SetRequestHeader("Accept", "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1")
$oHTTP.SetRequestHeader("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8")
$oHTTP.SetRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.SetRequestHeader("Referer", "http://my.dot.tk/cgi-bin/rnt1000.taloha/AddNewDomain")
$oHTTP.SetRequestHeader("Cookie", "mydomains=block; myprofile=none; bgnr=2; " & $cookie) ;bcd6e2f06da6a873ea923f0f38bdc5d8;
$oHTTP.SetRequestHeader("Connection", "Keep-alive")
$oHTTP.SetRequestHeader("Content-Length", "21")
$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.Send('domainname=' & $sDomain)
$oHTTP.WaitForResponse
$resp = $oHTTP.ResponseText
_Cookies()
$oHTTP.Open("POST", "http://my.dot.tk/cgi-bin/rnt1000.taloha/ChooseType")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("User-Agent", "Opera/9.80 (Windows NT 6.1; U; Edition Next; ru) Presto/2.9.186 Version/12.00")
$oHTTP.SetRequestHeader("Host", "my.dot.tk")
$oHTTP.SetRequestHeader("Accept", "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1")
$oHTTP.SetRequestHeader("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8")
$oHTTP.SetRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.SetRequestHeader("Referer", "http://my.dot.tk/cgi-bin/rnt1000.taloha/CheckAvailability")
$oHTTP.SetRequestHeader("Cookie", "mydomains=block; myprofile=none; bgnr=2; " & $cookie) ;"bcd6e2f06da6a873ea923f0f38bdc5d8;
$oHTTP.SetRequestHeader("Connection", "Keep-alive")
$oHTTP.SetRequestHeader("Content-Length", "21")
$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.Send('domaintype=FreeDomain')
$oHTTP.WaitForResponse
$resp = $oHTTP.ResponseText
_Cookies()
$oHTTP.Open("POST", "http://my.dot.tk/registration/captcha")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("User-Agent", "Opera/9.80 (Windows NT 6.1; U; Edition Next; ru) Presto/2.9.186 Version/12.00")
$oHTTP.SetRequestHeader("Host", "my.dot.tk")
$oHTTP.SetRequestHeader("Accept", "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1")
$oHTTP.SetRequestHeader("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8")
$oHTTP.SetRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.SetRequestHeader("Referer", "http://my.dot.tk/cgi-bin/rnt1000.taloha/ChooseType")
$oHTTP.SetRequestHeader("Cookie", "bgnr=2; " & $cookie)
$oHTTP.SetRequestHeader("Connection", "Keep-alive")
$oHTTP.Send($cookie)
$oHTTP.WaitForResponse
$resp = $oHTTP.ResponseText
;~ $f = FileOpen(@ScriptDir &'\captcha.bmp', 1+16)
;~ FileWrite($f, $resp)
;~ FileClose($f)
;~ _Cookies()
;~ $a = StringRegExpReplace($sID, "(session_id=)+", "")
;~ InetGet("http://my.dot.tk/registration/captcha?"&$sID, @ScriptDir &"\captcha.bmp",1)
;~ ShellExecute(@ScriptDir &"\captcha.bmp")
Func _Cookies()
$headers = $oHTTP.GetAllResponseHeaders()
ConsoleWrite($headers & @CRLF)
If UBound($sCookie) = 0 Then
$sCookie = _StringBetween($headers, "Set-Cookie: ", "domain=.dot.tk; path=/")
Else
$Temp = _StringBetween($headers, "Set-Cookie: ", "domain=.dot.tk; path=/")
;~ MsgBox(0, "", $Temp[0])
;~ If StringRegExp($Temp[0], "(" & $Temp[0] & ")+") = 1 Then
;~ _ArrayDisplay($sCookie)
If UBound($Temp) <> 0 Then
$Temp[0] = StringTrimRight($Temp[0], 2)
$sID = $Temp[0]
;~ MsgBox(0, "", $sID)
Local $iIndex = _ArraySearch($sCookie, $Temp[0], 0, 0, 0, 1)
If $iIndex = -1 Then
$sCookie = _ArrayMerge($sCookie, $Temp)
EndIf
EndIf
;~ EndIf
EndIf
;~ MsgBox(0, "sc", $sCookie)
;~ _ArrayDisplay($sCookie)
$cookie = ""
For $i=0 To UBound($sCookie)-1
$cookie = $cookie & $sCookie[$i]
Next
;~ MsgBox(0, "c", $cookie)
ConsoleWrite($cookie & @CRLF & @CRLF)
EndFunc
Func _ArrayMerge($amArray1, $amArray2)
Local $tempArray = $amArray1
Local $amElements = Ubound($tempArray) + Ubound($amArray2)
Redim $tempArray[$amElements]
Local $amCount = 0
For $X = Ubound($amArray1) to $amElements - 1
$tempArray[$X] = $amArray2[$amCount]
$amCount += 1
Next
Return $tempArray
EndFunc
Снифая analyzer-ом, вижу, что возвращает страничку логина.
Второй код получения каптчи, но без логина на акк, работает.
Код:
Local $oIE, $url1 = "http://my.dot.tk/registration/captcha", $url2 = "http://my.dot.tk/registration/register?domainname=", $url3
$url3 = InputBox("", "")
$oIE = _IECreate()
_IENavigate($oIE,$url2&$url3)
$o=_IEDocGetObj($oIE)
InetGet($url1&'?'&$o.cookie, @ScriptDir &"\captcha.bmp",1)
ShellExecute(@ScriptDir &"\captcha.bmp")
На быдлокод внимания не обращать, это тестовый скрипт.
Первый раз пишу что то с пост запросами. Прощу хелпа. Проект встал :(
http://zalil.ru/315909
Сниф нормального браузинга по сайту в XML.
Картинки и прочее срезал.
UP: С линком на капч разобрался.. Теперь думаю как передать куки и скачать ее..

UP2: Вроде качается. Но не могу в файлу записать.. Пишется только первые 8 байт.. Хелп.. Открываю в 16+2 режиме. :(
UP3: Гыыы. Как всегда на мои проблемы хрен кто ответит

UP4: Вроде решил. :laugh: По закону подлости никто не помогает. Ни один форум
