Показать полную графическую версию : [решено] Поиск нужного текста в html коде страницы
Собственно требуется то, что описано в названии темы...
Нужно найти определенное значение в html коде загруженной страницы и сделать это найденное значение переменной...
Или же наоборот, искать некоторую переменную, текстовую, в коде html загруженной страницы...
$Result = StringRegExp( "test", "pattern" [, flag ] )
а далее мне самому интересно :)
Нужно найти определенное значение в html коде загруженной страницы и сделать это найденное значение переменной »
#include <Inet.au3>
$sHtml = _INetGetSource("http://google.com")
$sVar = StringRegExpReplace($sHtml, "(?i)(?s).*<title>(.*)</title>.*", "\1")
ConsoleWrite("$sVar = " & $sVar & @CRLF)
Creat0R, а можно ли разъяснить что сие значит? Ну с _INetGetSource все ясно... А вот "StringRegExpReplace" мне не понятно... И с "ConsoleWrite" тоже не до конца ясно, т.е. сама команда ясна, выдает данные в поток, но все же не ясно что это дает...
Суть функции "StringRegExpReplace" ясна примере с сайта AutoIt... Но не понятно для чего она в данной ситуации... Она заменяет указанные символы на необходимые...
Было бы хорошо если бы мне разжевали данную функцию и почему именно такие параметры... А то я в англ. не очень хорош чтобы читать офф. док...
А я было вот такое начворил...
#include <INet.au3>
;Получаем страницу любую из инета, например страницу поиска в google.ru запраса - Autoit
$Getresurs=_INetGetSource('http://www.google.ru/search?hl=ru&newwindow=1&safe=active&q=Autoit&lr=&aq=f&oq=')
$sNumber = StringRegExpReplace($Getresurs, "(?s).*?примерно\s?<b>(\d+.*?(\d+)?)</b>.*", "\1")
; переменной $rezultat присваивается значение: примерное число найденых страниц по запросу поиска
$rezultat = StringRegExpReplace($sNumber, " ", " ")
MsgBox(64, "Результат","Всего обнаружено страниц по запроссу: " &$rezultat)
что то эта строка:
$rezultat = StringRegExpReplace($sNumber, " ", " ")
неравильно пишется в тегах кода, ибо там в первых кавычках пишеться то что требуется заменить, а во вторых на что требуется заменить, так вот, в первых у меня html код пробела- "тут должен быть html код пробела, раз 10 уже пробовал записать, но не отображается гадина", а во вторых просто пробел. Но тут отображается одинаково...
beve, супер, то что надо, уже что-то проясняется... Но немного не понятен принцип действия переменных что вокруг слово "примерно"... Точнее для чего они все там...
Точнее для чего они все там
При использовании функций StringRegExp и StringRegExpReplace используются Регулярные выражения для точного поиска в огромном тексте того куска, который нужен именно тебе. Открой Autoit Help файл и там в вкладке поиск набери - StringRegExp
При объяснении функции StringRegExp чуть чуть указывается что оно такое - регулярные выражения, но конечно одно но, оно на английском языке. Вот по этой ссылке можеш узнать общий смысл, что оно такое Регулярные выражения:
http://www.providerz.ru/articles/php/regexp-intro.html
А если мне нужно просто найти какое-то слово? Что нужно будет написать?
Т.е. оно там будет одно, полюбому... И мне как раз нужна проверка этого, есть там это слово или нет, а чтоб проверить, мне надо его найти :)
А если мне нужно просто найти какое-то слово »
If StringInStr($sHtml, "Слово") Then MsgBox(64, "", "Найдено.")
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.