Что нового

Получить печеньки - Cookie

ivanius

Знающий
Сообщения
74
Репутация
5
Страница: http://uni1.stratogame.net/index.php?page=login
сайт: http://stratogame.net/
Раньше логинился с ИЕ так:
Код:
$sLogin = GUICtrlRead($Login)
	$sPass = GUICtrlRead($PasswordEdit)
	$sUrl = 'http://stratogame.net/'

	$oIE = _IECreate($sUrl)
	$oIEHwnd = _IEPropertyGet($oIE, "HWND")
	WinSetState($oIEHwnd, "", @SW_MINIMIZE)

	$oLogin = _IEGetObjById($oIE, 'lwa_user_login')
	$oPass = _IEGetObjByName($oIE, 'lwa_user_pass')
	$oButton = _IEGetObjById($oIE, 'lwa_wp-submit')
	_IEFormElementSetValue($oLogin, $sLogin)
	_IEFormElementSetValue($oPass, $sPass)
	_IEAction($oButton, 'click')

Все работает, но скорость в ИЕ -откровенное какашечка .
Сейчас работаю со страницами вот так:
Код:
$Cookies = "2Moons="&GUICtrlRead($Login)
$HTTP.Open("POST", "http://uni1.stratogame.net/game.php?page=galaxy")
		$HTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
		$HTTP.SetRequestHeader("Cookie", $Cookies)
		$HTTP.Send('galaxy=1&system=' & $i)
		$HTTP.WaitForResponse

Но куки беру из браузера "ручками", ИЕ после логина не дает нужный мне куки (2Moons).
Суть в чем, когда логинюсь с WinHttp.WinHttpRequest.5.1 - он отдает страницу (ту которая нужна) хорошо, НО Set-Cookie не дает!!! (в браузере все ок).
Вроде-бы в чем проблема, а она в том что каждые 200 мс логиниться - думаю подозрительно, а в AllHeaders - не Cookie, не Set-Cookie.

Пробовал и куки через WinHttp достать но получаю в ответ шиш и статус 200, вместо 302го...
Еще есть подозрения что я ему не даю другие кукесы, которые неизвестным мне образом достает хром из неизвестного мне места.
выглядят они вот так: (АПДЕЙТ - это статистика сайтов т.е. мусор)
Код:
__utmt=1; __utma=156592383.649539535.1420549753.1420640884.1420646676.7; __utmb=156592383.178.10.1420646676; __utmc=156592383; __utmz=156592383.1420549753.1.1.utmcsr=stratogame.net|utmccn=(referral)|utmcmd=referral|utmcct=/; __utmt=1; __utma=11541110.1403328920.1420549717.1420663548.1420666336.7; __utmb=11541110.4.10.1420666336; __utmc=11541110; __utmz=11541110.1420663548.6.6.utmcsr=uni1.stratogame.net|utmccn=(referral)|utmcmd=referral|utmcct=/game.php; _ym_visorc_21676660=w
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
ivanius [?]
ИЕ после логина не дает нужный мне куки
А так?
Код:
#include <IE.au3>

$oIE = _IECreate('https://www.google.ru/')
MsgBox(64, 'Cookie', $oIE.Document.Cookie)

Или посмотрите сниффером на каком этапе получаются Cookie.


Добавлено:
Сообщение автоматически объединено:

ivanius [?]
и статус 200, вместо 302го...
Вроде отключить можно автоматическое перенаправление.
Смотрите здесь: Как выполнить перенаправление по ссылке, и получить перенаправленную ссылку?
 
Автор
I

ivanius

Знающий
Сообщения
74
Репутация
5
madmasles сказал(а):
А так?
Код:
#include <IE.au3>

$oIE = _IECreate('https://www.google.ru/')
MsgBox(64, 'Cookie', $oIE.Document.Cookie)
там нету куков которые мне нужны, только левые о статсистике, я их выше забросил.

UPD:
Получилось, когда я запрашивал с помощью GetAllResponseHeaders - я получал хеадеры ПЕРЕНАПРАВЛЕННОЙ странице, потому и статус 200, вместо 302го.
Код:
$HTTP.Option(6) = False ;WinHttpRequestOption_EnableRedirects
	$HTTP.Open("POST", "http://uni1.stratogame.net/index.php?page=login")
	$HTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
	$HTTP.SetRequestHeader("Accept-Encoding", "deflate")
	$HTTP.SetRequestHeader("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,uk;q=0.2")
	$HTTP.SetRequestHeader("Cache-Control", "max-age=0")
	$HTTP.SetRequestHeader("Connection", "keep-alive")
	$HTTP.SetRequestHeader("Content-Length", "87")
	$HTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
	$HTTP.SetRequestHeader("Host", "uni1.stratogame.net")
	;$HTTP.SetRequestHeader("Accept", "deflate")
	;$HTTP.SetRequestHeader("Cookie", "")
	$HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36")
	$HTTP.Send('username=7001637%40gmail.com&password=123456QwertY&wp-submit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8')
	$HTTP.WaitForResponse
	;ClipPut($HTTP.ResponseText)

	GUICtrlSetData($Results, $HTTP.Status & @CRLF & $HTTP.GetAllResponseHeaders)
 
Верх