Что нового

Скачивание файла в скрытом окне браузера IE

eus_deus

Новичок
Сообщения
118
Репутация
0
Добрый день!
Как реализовать скачивание файла по такой ссылке?
https://ru.ucoin.net/uid91894?export=csv
То есть ссылка не ведет именно на файл, а, как я понимаю, файл генерируется движком сайта.
Пробовал мыслить таким путем, собирая по кусочкам с разных тем:
Код:
Func _down_csv_xls($type)
    $sLogin = '********'
    $sPass = '*********'
    $sUrl = 'https://ru.ucoin.net'
    $oIE = _IECreate($sUrl,0,1)
    _IELinkClickByText ($oIE, "Вход")
    $oLogin = _IEGetObjByName($oIE, 'login-email')
    $oPass = _IEGetObjByName($oIE, 'login-passwd')
    $oEnter = $oIE.document.getElementsByClassName('btn-l btn-blue').item(0)
    $oQuit = $oIE.document.getElementsByClassName('right btn-l btn-gray').item(0)
    _IEFormElementSetValue($oLogin, $sLogin)
    _IEFormElementSetValue($oPass, $sPass)
    _IEAction($oEnter, 'click')
    Sleep(1500)
    _IELinkClickByText ($oIE, "Моя коллекция")
    Sleep(1200)
    Switch $type
        Case 'csv'
              _IELinkClickByText ($oIE, "Comma-Separated (CSV)")
        Case "xls"
            _IELinkClickByText ($oIE, "Microsoft Excel (XLS)")
    EndSwitch 
    Sleep(2000)
    $hIE = WinGetHandle("[Class:IEFrame]")
    $hCtrl = ControlGetHandle($hIE, "", "[ClassNN:DirectUIHWND1]")
    If WinExists($hIE,"") Then
        WinActivate($hIE,"")
        ControlSend($hIE ,"",$hCtrl,"{F6}")
        Sleep(500)               
        ControlSend($hIE ,"",$hCtrl,"{TAB}")
        Sleep(500)
        ControlSend($hIE ,"",$hCtrl,"{enter}")
    EndIf
    _IELinkClickByText ($oIE, "*******")
    _IEAction($oQuit, 'click')
    _IEQuit ($oIE)
EndFunc


Данные закрыл, но ход моих мыслей, думаю, понятен.
Оно работает, да, примерно как и планировалось.
Два минуса - файл скачивается с некириллическими символами в имени.
И второй, основной, минус - этот кусок кода
Код:
$hIE = WinGetHandle("[Class:IEFrame]")
    $hCtrl = ControlGetHandle($hIE, "", "[ClassNN:DirectUIHWND1]")
    If WinExists($hIE,"") Then
        WinActivate($hIE,"")
        ControlSend($hIE ,"",$hCtrl,"{F6}")
        Sleep(500)               
        ControlSend($hIE ,"",$hCtrl,"{TAB}")
        Sleep(500)
        ControlSend($hIE ,"",$hCtrl,"{enter}")
    EndIf

сводит на "нет" возможность работы в скрытом режиме
Можете подсказать что то по этим двум вопросам?
 
Последнее редактирование:
Верх