PERL выборка из html страницы

sergey_
На сайте с 09.01.2007
Offline
55
1049

есть переменная $html которая содержит код странцы сайта:

.....пропущено.....
<table border="0" cellspacing="0" cellpadding="0" style="width:100%;">
<tr>
<td colspan="2" class="txt_grey_12" style="padding-top:0px;">

<p style="line-height:20px;">
<span id="ctl00_ContentPlaceHolderCenter_Context1">Текст который мне нужен</span>

</p>
</td>
</tr>
.....пропущено.....

как убрать все лишее и оставить только: "Текст который мне нужен" ?

Черный список покупателей http://blclient.ru (http://blclient.ru) Апи для интернет магазинов http://blclient.ru/API/ (http://blclient.ru/API/) Отслеживание посылок Почты России с СМС уведомлениями (http://blclient.ru/).
stealthy
На сайте с 15.06.2006
Offline
69
#1

my $text = "приведенный фрагмент HTML";

my $needed_text = ($text =~ /<span id="ct100_ContentPlaceHolderCenter_Context1">(.*?)<\/span>/gis)[0];

Данный скрипт не учитывает того, что нужного span в HTML может не быть. Обработку ошибок делайте сами сообразуясь с задачей. Также, если в вашем искомом тексте будет встречен </span>, то регекс требует модификации. В общем идея понятна, а уж конкретно под задачу доточить всегда можно самому.

Twilight CMS (http://www.twl.ru): есть Free версия, очень проста и удобна в использовании. Консультирую по любым вопросам. Новый спорт - практическая стрельба (http://nikit.in) - не для офисного планктона.
UA
На сайте с 19.06.2006
Offline
100
#2

А может просто убрать все html-теги и лишние пробелы по краям?!

dkameleon
На сайте с 09.12.2005
Offline
386
#3

strip_tags

Упс. провтыкал, что надо на перле а не ПХП :)

Тут внизу страницы есть реализация функции на перле:

http://will.mylanders.com/seti/stats_how.php3

Дизайн интерьера (http://balabukha.com/)
progress
На сайте с 11.07.2006
Offline
125
#4
stealthy:
my $text = "приведенный фрагмент HTML";
my $needed_text = ($text =~ /<span id="ct100_ContentPlaceHolderCenter_Context1">(.*?)<\/span>/gis)[0];

Данный скрипт не учитывает того, что нужного span в HTML может не быть. Обработку ошибок делайте сами сообразуясь с задачей. Также, если в вашем искомом тексте будет встречен </span>, то регекс требует модификации. В общем идея понятна, а уж конкретно под задачу доточить всегда можно самому.

Согласен, но лишние переменные - зачем? Лишнее убираем (id тега один на документ)

$html =~ s/id="ct100_ContentPlaceHolderCenter_Context1">(.*?)</$1/s;

stealthy
На сайте с 15.06.2006
Offline
69
#5
progress:
Согласен, но лишние переменные - зачем? Лишнее убираем (id тега один на документ)

$html =~ s/id="ct100_ContentPlaceHolderCenter_Context1">(.*?)</$1/s;

Да, только надо проверить конечно будет ли замена быстрее поиска (если идеализировать решение). Плюс убивать исходную строку может быть не очень хорошо, а вдруг пригодится :).

PERL дает нам что? Правильно! TMTOWTDI (There's More Than One Way To Do It)!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий