Показать полную графическую версию : [решено] Поиск слова в исходном коде html страницы??????
klsorat2010
19-05-2010, 23:27
Народ, помогите пожалуйста, для диплома надо. Короче надо реализовать скрипт (на любом языке) который бы осуществлял поиск определенного слова в коде страницы, если находит то открывает одну ссылку, если нет другую. Скрипт должен запускаться по нажатию кнопки, заранее всем спасибо!
madmasles
20-05-2010, 07:24
klsorat2010,
Вы конкретную задачу поставьте. Т.е. страница - http://адрес/, если находим "нужное слово" в коде, то делаем "действие-1", если не находим, то делаем "действие-2". И так далее. Где кнопка должна быть, и т.д. и т.п.
klsorat2010
20-05-2010, 12:53
Хорошо, давайте по пунктам.
1. Есть сайт с модулем тестирования, по прохождения которого открывается страница:
http://s39.radikal.ru/i084/1005/59/a86f50416d2bt.jpg (http://radikal.ru/F/s39.radikal.ru/i084/1005/59/a86f50416d2b.jpg.html)
2. Поиск я думаю можно производить по значению параметра "Результат" (сдан, не сдан):
http://s003.radikal.ru/i204/1005/95/c5f88895d046t.jpg (http://radikal.ru/F/s003.radikal.ru/i204/1005/95/c5f88895d046.jpg.html)
3. Если "не сдан", то открывается картинка по адресу "http://demo/images/stories/zapret_dostupa.jpg":
http://s46.radikal.ru/i112/1005/9d/c5a517045a6dt.jpg (http://radikal.ru/F/s46.radikal.ru/i112/1005/9d/c5a517045a6d.jpg.html)
4. Если "сдан", то открывается htatest.hta файл по адресу "c:\WebServers\home\demo\www\htatest.hta":
http://i058.radikal.ru/1005/e0/9fbeb8bbf989t.jpg (http://radikal.ru/F/i058.radikal.ru/1005/e0/9fbeb8bbf989.jpg.html)
5. В ниже приведеном коде hta файла, производится запуск блокнота из папки windows, надо переделать для запуска какой нибудь программы из Program Files, нк например WINRAR'a.
6. Еще желательно что бы окно открывающееся по адресу "c:\WebServers\home\demo\www\htatest.hta" имело фиксированный размер.
Вроде все, заранее спасибо за помощь.
7. Исходный код страницы и hta файла смотрите во вложенных файлах.
P.S. Сайт находится на локальном компьютере, т.е. localhost
madmasles
20-05-2010, 15:06
klsorat2010,
Давайте тоже по пунктам, как я понял.
1. При запуске нашей программки открывается окно (примерно как на скриншоте-1), в котором открывается нужный нам сайт.
2. Я нарисовал 2 кнопки, но можно сделать сколько надо. Какие конкретно действия должны происходить при нажимании на них.
Все эти данные можно мне в ПМ.
klsorat2010
20-05-2010, 16:32
По нажатию на кнопку, должен запускаться скрипт, который производит поиск определенного слова в исходном коде страницы ("Сдал" например), если это слово присутствует, то производится открытие страницы по адресу "c:\WebServers\home\demo\www\htatest.hta", на этой странице пользователь уже может запустить нужную мне программу (желательно что бы после запуска этой программы, страница htatest.hta закрывалась бы), НО, если скрипт после поиска в коде НЕ НАХОДИТ слово "Сдал", то открывается рисунок по адресу "http://demo/images/stories/zapret_dostupa.jpg". Вроде все предельно понятно, заранее спасибо за помощь.
который производит поиск определенного слова в исходном коде страницы ("Сдал" например) »
Я еще уточню один нюанс для madmasles-а, или для других, слово, которое нужно будет искать на странице будет в одном екземпляре?
Тип файла: txt исходный код.txt
Jumla на локалхосте под тесты? :drug:
htafile_.hta.txt
теперь я понял, зачем вам запуск через проги .hta - иначе браузер показывает окно с подтверждением открыть/сохранить файл и с абсолютными путями тоже гемморой...
Для AutoIT это конечно не проблема(разве что меня смущает динамический TITLE)...
"c:\WebServers\home\demo\www\htatest.hta"
А у вас на каждом компе Денвер установлен? :o
klsorat2010
21-05-2010, 11:49
Да, слово которое нужно будет искать в одном экземпляре, либо "Сдал" либо "Не сдал"
Нет, Денвер не на каждом компе, да это и не важно, главное что бы все работало на одной машине.
Так кто нибудт поможет или как?
madmasles
21-05-2010, 13:26
klsorat2010,
Примерно так у меня получилось: #include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <GUIConstantsEx.au3>
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <WindowsConstants.au3>
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <IE.au3>
_IEErrorHandlerRegister (http://dundats.mvps.org/help/html/libfunctions/_ieerrorhandlerregister.htm)()
$oIE = _IECreateEmbedded (http://dundats.mvps.org/help/html/libfunctions/_iecreateembedded.htm)()
$hForm = GUICreate (http://www.autoitscript.com/autoit3/docs/functions/GUICreate.htm)("Супер-пупер программа", 640, 580, _
(@DesktopWidth (http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopwidth) - 640) / 2, (@DesktopHeight (http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopheight) - 580) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
$GUIActiveX = GUICtrlCreateObj (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateObj.htm)($oIE, 5, 5, 630, 520)
$GUI_Button_Test = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Пройти тест", 55, 530, 150, 30)
$GUI_Button_Check = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Проверить результат", 245, 530, 150, 30)
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)(-1, $GUI_DISABLE)
$GUI_Button_Home = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Домой", 435, 530, 150, 30)
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)(-1, $GUI_DISABLE)
GUISetState (http://www.autoitscript.com/autoit3/docs/functions/GUISetState.htm)()
_IENavigate (http://dundats.mvps.org/help/html/libfunctions/_ienavigate.htm)($oIE, "http://www.mail.ru/")
While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
$msg = GUIGetMsg (http://www.autoitscript.com/autoit3/docs/functions/GUIGetMsg.htm)()
Select (http://www.autoitscript.com/autoit3/docs/keywords.htm#Select)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $msg = $GUI_EVENT_CLOSE
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $msg = $GUI_Button_Test
_IENavigate (http://dundats.mvps.org/help/html/libfunctions/_ienavigate.htm)($oIE, "http://forum.oszone.net/")
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($GUI_Button_Check, $GUI_ENABLE)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $msg = $GUI_Button_Check
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($GUI_Button_Check, $GUI_DISABLE)
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($GUI_Button_Test, $GUI_DISABLE)
$sText = _IEBodyReadText (http://dundats.mvps.org/help/html/libfunctions/_iebodyreadtext.htm)($oIE)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm)($sText, "Забыли пароль") <> 0 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(266256, "Ошибка!", "Вы или не зарегистрированы, или забыли войти")
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(266308, "Успех!", "Вы успешно вошли в форум!" & @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf) & @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf) & _
"Открыть блокнот?") = 6 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Run (http://www.autoitscript.com/autoit3/docs/functions/Run.htm)("notepad")
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($GUI_Button_Home, $GUI_ENABLE)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $msg = $GUI_Button_Home
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($GUI_Button_Home, $GUI_DISABLE)
_IENavigate (http://dundats.mvps.org/help/html/libfunctions/_ienavigate.htm)($oIE, "http://www.mail.ru/")
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($GUI_Button_Test, $GUI_ENABLE)
EndSelect (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSelect)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)
klsorat2010
21-05-2010, 13:28
klsorat2010,
Примерно так у меня получилось:
читать дальше » »
И что это? Ссылк аведет на эту же страницу
klsorat2010, это не ссылка а раскрывающийся блок текста в котором код. вот такой
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
$hForm = GUICreate("Супер-пупер программа", 640, 580, _
(@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
$GUIActiveX = GUICtrlCreateObj($oIE, 5, 5, 630, 520)
$GUI_Button_Test = GUICtrlCreateButton("Пройти тест", 55, 530, 150, 30)
$GUI_Button_Check = GUICtrlCreateButton("Проверить результат", 245, 530, 150, 30)
GUICtrlSetState(-1, $GUI_DISABLE)
$GUI_Button_Home = GUICtrlCreateButton("Домой", 435, 530, 150, 30)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()
_IENavigate($oIE, "http://www.mail.ru/")
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $GUI_Button_Test
_IENavigate($oIE, "http://forum.oszone.net/")
GUICtrlSetState($GUI_Button_Check, $GUI_ENABLE)
Case $msg = $GUI_Button_Check
GUICtrlSetState($GUI_Button_Check, $GUI_DISABLE)
GUICtrlSetState($GUI_Button_Test, $GUI_DISABLE)
$sText = _IEBodyReadText($oIE)
If StringInStr($sText, "Забыли пароль") <> 0 Then
MsgBox(266256, "Ошибка!", "Вы или не зарегистрированы, или забыли войти")
Else
If MsgBox(266308, "Успех!", "Вы успешно вошли в форум!" & @CRLF & @CRLF & _
"Открыть блокнот?") = 6 Then Run("notepad")
EndIf
GUICtrlSetState($GUI_Button_Home, $GUI_ENABLE)
Case $msg = $GUI_Button_Home
GUICtrlSetState($GUI_Button_Home, $GUI_DISABLE)
_IENavigate($oIE, "http://www.mail.ru/")
GUICtrlSetState($GUI_Button_Test, $GUI_ENABLE)
EndSelect
WEnd
И что это? Ссылк аведет на эту же страницу »
там просто раскрывающийся блок с кодом того, что тебе надо
И что это? Ссылка ведет на эту же страницу »
Разрешите в Вашем браузере исполнение скриптов для домена «forum.oszone.net» (а лучше сразу для «oszone.net»).
klsorat2010
21-05-2010, 15:58
спасибо конечно, тока я не вижу где же сам поиск слова то?
madmasles
21-05-2010, 16:06
klsorat2010,
$sText = _IEBodyReadText($oIE)Читаем с окна IE тот текст, который сами видим на экране.If StringInStr($sText, "Забыли пароль") <> 0 Then
MsgBox(266256, "Ошибка!", "Вы или не зарегистрированы, или забыли войти")
Else
If MsgBox(266308, "Успех!", "Вы успешно вошли в форум!" & @CRLF & @CRLF & _
"Открыть блокнот?") = 6 Then Run("notepad")
EndIfЕсли находим на экране текст "Забыли пароль", то "Ошибка!", если не находим, то "Успех!" и вопрос - "Открыть блокнот?". Если "Да", то открываем блокнот.
Вы попробуйте выйти из учетной записи и проверить скрипт, потом войти на форум и опять проверить скрипт.
klsorat2010
21-05-2010, 16:11
madmasles спасибо, тока как мне это в html то впихнуть?
да и блокнот не запускается если выйти/войти на этоот форум
madmasles
21-05-2010, 16:46
klsorat2010,
А зачем его запихивать в html? Он и так работает (у меня). Попробуйте вставить свои ссылки, свое слово для поиска, свою программу для запуска.
У меня на Win XP блокнот открывает, попробуйте в самой первой строке написать #RequireAdmin, если у Вас Vista или 7.
У меня работает с вашими файлами (я их переименовал на расширение .html) и с такой ссылкой: file://localhost/C:/исходный%20код.html, и с такой: C:\htafile_.hta.html.
klsorat2010
21-05-2010, 17:37
чет я не пойму, а какое тогда расширение ставить если не html?
madmasles
21-05-2010, 17:49
klsorat2010,
Вы имеете в виду расширение самого скрипта? Его расширение должно быть .au3
klsorat2010
21-05-2010, 17:54
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
перед "#RequireAdmin " #include не надо?
и как его тогда запускать если он .au3?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.