Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить регулярное выражение, Нужно извлечь содержимое тегов 
:(
    Опции темы
Styler
Дата 19.3.2008, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.7.2005

Репутация: нет
Всего: 1



При помощи LWP получаю в переменную содержимое страницы, которое нужно пропарсить.
Если быть точнее - необходимо поудалять лишнюю информацию, при этом сохранив все ява-скрипты которые есть в коде.

Выглядит он примерно так:

Код


...ненужный HTML

<script>Нужный яваскрипт 1</script>
<script>Нужный яваскрипт 2</script>

... нужный HTML

<script>Нужный яваскрипт 3</script>



Проблема состоит в том, чтобы выдрать из этого кода весь яваскрипт в какую то переменную.
После этого html код обрежется по границам нужного HTML и к нему будет добавлен выдранный яваскрипт.

Использовал вот такое выражение:
Код

$page =~ /<script(.*?)script>/g;


- но оно почему-то возвращает только "Нужный яваскрипт 1".

Подскажите пожалуйста, буду очень благодарен.
PM MAIL   Вверх
Styler
Дата 19.3.2008, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.7.2005

Репутация: нет
Всего: 1



Вроде получилось выйти из положения вот так:
Код

      my @href = $page =~ /<script.*?script>/igs;
      my $content = "@href";


Но - подскажите - насколько вообще правилен сам подход к парсингу страницы?
Задача стоит в том, чтобы выдрать некоторую информацию с удаленного сервера, удалив лишнее, отобразить у себя, создав у пользователя иллюзию что эта информация размещена на моем сайте smile
PM MAIL   Вверх
amg
Дата 19.3.2008, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(Styler @  19.3.2008,  02:42 Найти цитируемый пост)
Вроде получилось выйти из положения вот так:
То же самое можно сделать чуть проще:
Код

my $content = $page =~ /(<script>.*<\/script>)/is;
Такой подход к парсингу страницы будет правильным только для простейших случаев. Например, все полетит, если вдруг среди "ненужного html" присутствует подстрока "<script>". Подход, гарантирующий от ошибок - воспользоваться каким-нибудь парсером html - их множество, поищите.


Это сообщение отредактировал(а) amg - 19.3.2008, 09:42
PM MAIL   Вверх
BurnerCode
Дата 19.3.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.2.2008
Где: Беларусь

Репутация: нет
Всего: нет



perldoc HTML::Parser
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.