Что нового

[Данные, строки] Нужен шаблон для получения текста ссылки из HTML кода!

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
zip-per
Сделайте так:
Код:
;...
$sMAP = _INetGetSource("http://www.ххх.ru/me/")
FileWrite(@ScriptDir & '\test.txt', $sMAP)
И напишите здесь тот кусок текста из файла test.txt, в котором то, что Вы ищите.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
zip-per
Сделайте следующее.
Откройте (нужную) страницу в браузере, кликните на странице ПКМ далее:
FF -> "Исходный код страницы"
IE -> "Посмотреть HTML-код"
Оpera -> "Исходный код"
Chrome -> "Просмотр кода страницы"
Выделите вес код и сохраните в файл.
Файл прикрепите к посту.
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
Garrett
Конечно спс, за столь подробное описание выдергивание исходника, но если бы я не знал как его выдернуть, то тут мне вообще делать нечего было бы :smile:

Выдернул его обычным способом (по методу Garrett ;))
То что получил, прикрепил к сообщению.

Кстати, функция
Код:
$sMAP = _INetGetSource("http://www.ххх.ru/me/")
 MsgBox(0, '', $sMAP[0])

Выводит на экран то-же самое.

А вот методом madmasles выдал код главной страницы, с формами для входа. Не думаю, что он интересен будет, не стал выкладывать.

P.S. Уважаемые модераторы, я опять накосячил. Закачал файл на файлообменник. Кнопки удалить не нашел. Удалите его пож-та!
http://autoit-script.ru/index.php?action=downloads;sa=view;down=73
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
zip-per
У меня с Вашим файлом работают оба варианта:
Код:
$sHTMLMAP = FileRead(@ScriptDir & '\map[1].txt')
$aMAP = StringRegExp($sHTMLMAP, "Вы находитесь в секторе \[Z\] (.+)'><b>", 3)
;$aMAP = StringRegExp($sHTMLMAP, "секторе\s?\[Z\]\s?(.+)'>", 3);у меня и так работает
If Not @error Then
	MsgBox(0, @error, $aMAP[0])
Else
	MsgBox(0, 'Error', @error)
EndIf
$sMAP = StringRegExpReplace($sHTMLMAP, "(?s).*?Вы находитесь в секторе \[Z\] (.+)'><b>?.*", '\1')
;$sMAP = StringRegExpReplace($sHTMLMAP, "(?s).*?секторе\s?\[Z\]\s?(.+?)'>?.*", '\1');и так
MsgBox(0, @extended, $sMAP)
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
OffTopic:

_INetGetSource качает видмо страницу с авторизацией ;D
Чтобы получить нужные данные, сначала залогинься, потом передай куки и получишь, то что нужно, это уже другая, менее легкая тема.
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
madmasles
У меня тоже с файлом txt сработал. Но вот со страницей IE не хочет, возвращает "1" - нет совпадений.

r35p3ct
Ты чертовски прав!
Код:
_IENavigate ($oIE, "http://www.ххх.ru/map.php",1) ;переходим на страницу где будем искать данные, не обязателен, но что бы навеняка удостовериться, что страница доступна
$sMAP = _INetGetSource("http://www.ххх.ru/map.php") ; присваиваем переменной $sMAP код страницы
FileWrite(@ScriptDir & '\test555.txt', $sMAP) ; сохраняем код страницы в файле txt для проверки переменной $sMAP

$sHTMLMAP = StringRegExp($sMAP, "Вы находитесь в секторе \[Z\] (.+)'><b>", 3) ;Присваиваем переменной найденные данные
If Not @error Then
    MsgBox(0, @error, $sHTMLMAP[0])
Else
    MsgBox(0, 'Error', @error)
EndIf


После того как получил ответ "1", полез читать что в test555.txt. А там как раз главная страница с авторизацией. Я ее получал еще и раньше, выше отписывался, но не придал значения. Как же так? Вход я выполнил до запуска скрипта, по моей логике страница где надо производить поиск должна быть доступна, я на нее браузером перехожу. Почему сервер просит куки? И как теперь ему их отправить?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
zip-per,
Если Вы переходите на нужную Вам страницу при помощи _IENavigate(), то, может, лучше и ее текст читать с помощью _IEBodyReadText() или _IEBodyReadHTML()?
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
madmasles
Спасибо! Прочитал страницу ту которую надо, но теперь она видоизменилась :blink: не понял почему правда. Прикрепил ее код к сообщению если кому интересно конечно.
Опять испытываю трудности с StringRegExp. Не находит :(
Код:
_IENavigate ($oIE, "http://www.ххх.ru/map.php",1)
$sMAP = _IEBodyReadHTML($oIE)
FileWrite(@ScriptDir & '\test555.txt', $sMAP)

$sHTMLMAP = StringRegExp($sMAP, "<B>[Z] (.+)</B></A>
</TD></TR></TBODY></TABLE></TD>", 3) ; Под (.+) ищем "Energy One"

If Not @error Then
    MsgBox(0, @error, $sHTMLMAP[0])
Else
    MsgBox(0, 'Error', @error)
EndIf
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
zip-per
Код:
$sHTMLMAP = FileRead(@ScriptDir & '\test555.txt')
$aMAP = StringRegExp($sHTMLMAP, 'Вы находитесь в секторе \[Z\] (.+)" href', 3)
;$aMAP = StringRegExp($sHTMLMAP, 'секторе\s?\[Z\]\s?(.+)"\s?href', 3);у меня и так работает
If Not @error Then
    MsgBox(0, @error, $aMAP[0])
Else
    MsgBox(0, 'Error', @error)
EndIf
$sMAP = StringRegExpReplace($sHTMLMAP, '(?s).*?Вы находитесь в секторе \[Z\] (.+?)" href?.*', '\1')
;$sMAP = StringRegExpReplace($sHTMLMAP, '(?s).*?секторе\s?\[Z\]\s?(.+?)"\s?href?.*', '\1');и так
MsgBox(0, @extended, $sMAP)
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
:laugh:
Ураа!!! Заработало!!!
Уважаемые, всем огромное спасибо за вашу помощь!!!
:thumbs_up:
 
Верх