Что нового

[Автоматизация] Загрузка файла с помощью InetGet после авторизации

k377

Новичок
Сообщения
3
Репутация
0
Добрый день.
Авторизуюсь на сайте.
После авторизации при открытии нового окна, авторизация сохраняется. Далее пытаюсь с помощью функции InetGet загрузить файл по ссылке, но файл не скачивается.
Я пытался с помощью этого кода скачать файл с другого сайта, на котором не требуется авторизация. Все загружается.
Код:
Local $urllogin   = "http://passport.moex.com/login" ; url к странице авторизации
   ;Local $urllogin   = "https://passport.moex.com/ru/login?return_to=http://moex.com/ru/marketdata/archive/" ; url к странице авторизации
	local $urlarchive = "http://moex.com/ru/marketdata/archive/#/engine=stock&market=shares&data_type=securities&data_interval=current&data_format=csv" ; url для ручного выбора файлов (чтобы не забыть потом, где скачивать =)

	local $username = "...."
	local $password = "...."

	local $logmsg
	local $oIE
	local $oForm
	local $oText

	;--- Авторизуемся
	$logmsg = "Открываю страницу авторизации на сайте micex: " & $urllogin
	;LogPrintLineDeb( $logmsg & @CRLF)

	$oIE = _IECreate( $urllogin, 0, 1 )  ; Запустить IE и открыть страничку аутентификации

	$logmsg = "Страница авторизации открыта."
	;LogPrintLineDeb( $logmsg & @CRLF)

	
	$oForm = _IEFormGetCollection ( $oIE, 0)

	; ввод логина
	$oText = _IEFormElementGetObjByName ($oForm, "user[credentials]")
	_IEFormElementSetValue ($oText, $username)

	; ввод пароля
	$oText = _IEFormElementGetObjByName ($oForm, "user[password]")
	_IEFormElementSetValue ($oText, $username)

	; жмем кнопку Войти
	$logmsg = "Жмем кнопку Войти."


	;LogPrintLineDeb( $logmsg & @CRLF)
	$res = 'xx'
    $res = _IEFormSubmit ( $oForm, 1 )

     Local $sFilePath =@ScriptDir
	 Local $hDownload = InetGet("http://www.moex.com/iss/downloads/engines/stock/markets/shares/years/2016/months/06/days/29/trades_micex_stock_shares_2016_06_29.csv.zip", $sFilePath & "/update1.dat", $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND)
	 Do
        Sleep(250)
    Until InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE)

    ; Retrieve the number of total bytes received and the filesize.
    Local $iBytesSize = InetGetInfo($hDownload, $INET_DOWNLOADREAD)
	Local $iFileSize = FileGetSize($sFilePath)


    ; Close the handle returned by InetGet.
    InetClose($hDownload)

    ; Display details about the total number of bytes read and the filesize.
    MsgBox($MB_SYSTEMMODAL, "", "The total download size: " & $iBytesSize & @CRLF & _
            "The total filesize: " & $iFileSize)


	 
	
exit
Как нужно применять InetGet в этом случае?
(Информация которую я пытаюсь скачать платная, у меня все оплачено, поэтому если ссылку, которую я использую в качестве параметра для InetGet я просто ввожу в браузере, то появляется стандартная форма для сохранения. У меня IE11.)
 
Верх