Здравствуйте! Есть такая задача. Нужно из исходного кода страницы, которая располагается после страницы ввода номера модема и пароля, повыдергивать неопределенные слова и цифры, и вписать их вместо значения "текст" label-a в программе.
Для ясности это программа которая показывает баланс счета интернет абонента без видимого использования браузера. Залогиниться на сайте удается, получить исходный код тоже, а вот с поиском и присвоением значения проблема, особенно с поиском, потому как данные могут быть разные, как у каждого абонента.)
Поскольку пока не умею искать необходимый текст в памяти, решил временно создавать текстовый файл и сохранять его в текстовом документе на диске Д, который после закрытия программы удаляется.
Текст программы:
И еще прикрепляю файл data.txt с исходный текстом страницы на которой будет производиться поиск
И вид страницы для ясности, поскольку без наличия номера модема, на сайт не войти.
Требуется выбрать значения
Конфиденциальные данные заменены просто набором цифр, платные придложения не рассматриваются. )
Для ясности это программа которая показывает баланс счета интернет абонента без видимого использования браузера. Залогиниться на сайте удается, получить исходный код тоже, а вот с поиском и присвоением значения проблема, особенно с поиском, потому как данные могут быть разные, как у каждого абонента.)
Поскольку пока не умею искать необходимый текст в памяти, решил временно создавать текстовый файл и сохранять его в текстовом документе на диске Д, который после закрытия программы удаляется.
Текст программы:
Код:
#include <GUIConstants.au3>
#include <Array.au3>
#include <File.au3>
GUICreate("Стан рахунку абонента Інтертелеком", 350, 450)
Opt("GUICoordMode",2)
GUICtrlCreateLabel ( "Номер:", 30, 30 ,40)
GUICtrlCreateLabel ( "Пароль:", 90, -1, 40)
$phone = GUICtrlCreateInput ("", -125, -25, 80, 20)
$pass = GUICtrlCreateInput ("", 50, -20, 80, 20)
GUICtrlCreateLabel ( "Особовий рахунок.............................:", -270, 20, 190)
GUICtrlCreateLabel ( "Абонент..............................................:", -190, 0, 190)
GUICtrlCreateLabel ( "Номер.................................................:", -190, 0, 190)
GUICtrlCreateLabel ( "Стан....................................................:", -190, 0, 190)
GUICtrlCreateLabel ( "Пакет..................................................:", -190, 0, 190)
GUICtrlCreateLabel ( "Додаткова угода...............................:", -190, 0, 190)
GUICtrlCreateLabel ( "Дата підключення..............................:", -190, 0, 190)
GUICtrlCreateLabel ( "Абонентський стаж...........................:", -190, 0, 190)
GUICtrlCreateLabel ( "Лояльний стаж..................................:", -190, 0, 190)
GUICtrlCreateLabel ( "E-mail...................................................:", -190, 0, 190)
GUICtrlCreateLabel ( "- (грн.)..................................................:", -190, 0, 190)
GUICtrlCreateLabel ( "Сальдо................................................:", -190, 0, 190)
GUICtrlCreateLabel ( "Передплачені послуги на місяць......:", -190, 0, 190)
GUICtrlCreateLabel ( "Неактивовані бонуси (з 094).............:", -190, 0, 190)
GUICtrlCreateLabel ( "- (МБ)....................................................:", -190, 0, 190)
GUICtrlCreateLabel ( "Трафік (Отримано+Передано)...........:", -190, 0, 190)
GUICtrlCreateLabel ( "Пакетний трафік.................................:", -190, 0, 190)
; Лейблы ответов
$CTRL_lbl0 = GUICtrlCreateLabel ( "Особовий рахунок - ?", 5, -340, 140)
$CTRL_lbl1 = GUICtrlCreateLabel ( "Абонент - ?", -140, 0, 140)
$CTRL_lbl2 = GUICtrlCreateLabel ( "Номер - ?", -140, 0, 140)
$CTRL_lbl3 = GUICtrlCreateLabel ( "Стан - ?", -140, 0, 140)
$CTRL_lbl4 = GUICtrlCreateLabel ( "Пакет - ?", -140, 0, 140)
$CTRL_lbl5 = GUICtrlCreateLabel ( "Додаткова угода - ?", -140, 0, 140)
$CTRL_lbl6 = GUICtrlCreateLabel ( "Дата підключення - ?", -140, 0, 140)
$CTRL_lbl7 = GUICtrlCreateLabel ( "Абонентський стаж - ?", -140, 0, 140)
$CTRL_lbl8 = GUICtrlCreateLabel ( "Лояльний стаж - ?", -140, 0, 140)
$CTRL_lbl9 = GUICtrlCreateLabel ( "E-mail - ?", -140, 0, 140)
$CTRL_lbl10 = GUICtrlCreateLabel ( "- (грн.) - ?", -140, 0, 140)
$CTRL_lbl11 = GUICtrlCreateLabel ( "Сальдо - ?", -140, 0, 140)
$CTRL_lbl12 = GUICtrlCreateLabel ( "Передплачені послуги - ?", -140, 0, 140)
$CTRL_lbl13 = GUICtrlCreateLabel ( "Неактивовані бонуси - ?", -140, 0, 140)
$CTRL_lbl14 = GUICtrlCreateLabel ( "- (МБ) - ?", -140, 0, 140)
$CTRL_lbl15 = GUICtrlCreateLabel ( "Трафік - ?", -140, 0, 140)
$CTRL_lbl16 = GUICtrlCreateLabel ( "Пакетний трафік - ?", -140, 0, 140)
; кнопки
$CTRL_btn0 = GUICtrlCreateButton ("Отримати дані", -295, 10, 100, 25)
$CTRL_btn1 = GUICtrlCreateButton ( "Закрити", 25, -1, 100)
GUISetState ()
$b = True
If $b = True Then FileInstall("C:\data.txt", "D:\data.txt", 1)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $CTRL_btn0
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST","https://assa.intertelecom.ua/ru/login")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("Accept", "*/*")
$oHTTP.SetRequestHeader("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
$oHTTP.SetRequestHeader("Referer","https://assa.intertelecom.ua/ru/statistic")
$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1")
$oHTTP.SetRequestHeader("Host","assa.intertelecom.ua")
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive")
$oHTTP.Send("phone=" & GUICtrlRead($phone) & "&pass=" & GUICtrlRead($pass))
$oHTTP.WaitForResponse
; Получаем исходный код страницы, когда мы уже авторизовались.
$oHTTP.Open("GET","https://assa.intertelecom.ua/ru/statistic")
$oHTTP.Send()
$oHTTP.WaitForResponse
;ConsoleWrite($oHTTP)
$File=FileOpen ("D:\data.txt", 2)
FileWrite($File, $oHTTP.ResponseText)
FileClose($File)
;MsgBox(0,0,$oHTTP.ResponseText)
Case $msg = $CTRL_btn1
MsgBox(0, "Вихід з програми", "Закриття...")
FileDelete ( "D:\data.txt" )
ExitLoop
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "Вихід з програми", "Закриття...")
FileDelete ( "D:\data.txt" )
ExitLoop
EndSelect
WEnd
И еще прикрепляю файл data.txt с исходный текстом страницы на которой будет производиться поиск
И вид страницы для ясности, поскольку без наличия номера модема, на сайт не войти.
Требуется выбрать значения
1111105
Мобільний абонент - -
389111171
Активен
3G Адреналин
Нет
02.06.2011
0.0
0.0
[email protected]
(грн.)
11.67
0.00
0.00
(МБ)
479
(МБ)
584.0605
Мобільний абонент - -
389111171
Активен
3G Адреналин
Нет
02.06.2011
0.0
0.0
[email protected]
(грн.)
11.67
0.00
0.00
(МБ)
479
(МБ)
584.0605
Конфиденциальные данные заменены просто набором цифр, платные придложения не рассматриваются. )