Что нового

[Сеть, интернет] Получение данных с www.nationalbank.kz

Pavel

Новичок
Сообщения
125
Репутация
3
Доброго времени суток!
Опять я мучаюсь с IE.au3 :scratch:
Не могу получить курс USD/KZT за произвольно взятую дату (например, 10.10.11)... Кто может помочь? :-[
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
IE тут не особо нужен. надо парсить вот эту страничку
http://nationalbank.kz/index.cfm?docid=748&sDate=01/01/2010&edate=18/10/2011&idval=5&flag=1&ok3=yes
там все есть, и даты, и какая валюта.
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
Kaster, это походу привязано к сессии! Попробуйте открыть ссылку в другом браузере. отдельно, без перехода со жмаканьем кнопок! (ну, или просто спарсить эту ссылку через inetget)
См. вложение.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Pavel
возможно.
я после перехода по ссылке выше, получил пустую страницу. потом нажал на русский язык в списке справа. после еще раз перешел по ссылке и получилось нормально. но это конечно не очень удобно, завязываться на куках.
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
Kaster, поэтому и нужен вариант с IE и жмаканьем кнопок :-[
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
#include <IE.au3>
#include <Array.au3>

Dim $iIndex = 6 ; USD/KZT
Dim $sDate = '10/10/2011'
Dim $sURL = 'http://www.nationalbank.kz/'
Dim $sURL2 = 'http://www.nationalbank.kz/index.cfm?furl=cursFull&switch=rus'

If WinExists("[CLASS:IEFrame]") Then
	WinActivate("[CLASS:IEFrame]")
	$hWin = WinGetHandle("[CLASS:IEFrame]")
	$oIE = _IEAttach($hWin, "HWND")
	_IENavigate($oIE, $sURL)
Else
	$oIE = _IECreate($sURL)
EndIf

_IENavigate($oIE, $sURL2)

$oForm = _IEFormGetCollection($oIE, 1)
_IEFormElementCheckboxSelect ($oForm, $iIndex, '', 1, 'byIndex')
$oDateS = _IEGetObjByName($oForm, 'sDate')
_IEFormElementSetValue($oDateS, $sDate)
$oDateE = _IEGetObjByName($oForm, 'eDate')
_IEFormElementSetValue($oDateE, $sDate)
$oSubmit2 = _IEGetObjByName($oForm, 'OK2')
_IEAction($oSubmit2, 'click')
_IELoadWait($oIE)

$oTables = _IETableGetCollection($oIE, 10)
$aTable10 = _IETableWriteToArray ($oTables)

ReDim $aTable10[1][3]
$aTable10[0][0] = $aTable10[0][1]

$oTables = _IETableGetCollection($oIE, 11)
$aTable11 = _IETableWriteToArray ($oTables)

$aTable10[0][1] = $aTable11[0][0]
$aTable10[0][2] = $aTable11[0][1]
$aTable11 = 0

_ArrayDisplay($aTable10)
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
Garret, у меня после
Код:
_IENavigate($oIE, $sURL2)

ничего не происходит.
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
С IE8 работает. С IE9 - не работает :(
 

axlwor

Скриптер
Сообщения
657
Репутация
147
и не будет. там клики убрали по соображениям безопасности
но второй пример _IEAction() из хелпа к IE.au3 поможет
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
и не будет. там клики убрали по соображениям безопасности
но второй пример _IEAction() из хелпа к IE.au3 поможет
Что-то не выходит никак. Да и не факт, что в фоне будет выполнять контролсэнд...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Garrett,
Проверьте, пожалуйста, этот код:
Код:
$sVersionIE = StringLeft(RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer', 'Version'), 1)
MsgBox(64, 'Info', 'Версия IE: ' & $sVersionIE)
У меня на XP с IE8 и на 7 с IE9 работает.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
madmasles [?]
Проверьте, пожалуйста, этот код:
У меня работает, показывает IE 7 :smile:
Ну, так у меня и установлен IE 7, IE 8 (portable версию), я запускаю для экспериментов. А вот IE 9 он только под Win 7 работает.



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

madmasles [?]
и на 7 с IE9 работает.
Ну, так у вас наверно режим совместимости включен, а вот другим господам лень поиском пользоваться, ведь этот вопрос уже обсуждали ;)
 
Верх