|
|
|
| Помогите составить выражение для такого html кода:
<div class=site><a onclick="R(this, '')" href="http://www.catalog.holodilniki.ru" target=_blank><b>www.catalog.holodilniki.ru</b></a> (<a href="/srch?sort=0&oe=1251&words=%EA%E0%F2%E0%EB%EE%E3&filter=http://www.catalog.holodilniki.ru">всего 484</a>)</div>
<div class=site><a onclick="R(this, '')" href="http://www.bestlinks.ru" target=_blank><b>www.bestlinks.ru</b></a> (<a href="/srch?sort=0&oe=1251&words=%EA%E0%F2%E0%EB%EE%E3&filter=http://www.bestlinks.ru">всего 3447</a>)</div>
Из этого кода нужно получить первый url, т.е. http://www.catalog.holodilniki.ru и http://www.bestlinks.ru | |
|
|
|
|
|
|
|
для: Volodja
(26.02.2006 в 16:31)
| | А до этих блоков имеются другие тэги <a>? | |
|
|
|
|
|
|
|
для: cheops
(26.02.2006 в 23:24)
| | Да, имеются, там много всяких тегов в том числе и <a> | |
|
|
|
|
|
|
|
для: Volodja
(27.02.2006 в 00:15)
| | Если не сложно, прикрепите к сообщению полный HTML-файл, так как регулярное выражение будет зависить от того, что находится до и после этих блоков. | |
|
|
|
|
|
|
|
для: cheops
(27.02.2006 в 13:43)
| | В общем этот код из выдачи Рамблера например http://www.rambler.ru/srch?oe=1251&words=%EA%E0%F2%E0%EB%EE%E3&start=1, нужно выдрать все url с выдачи | |
|
|
|
|
|
|
|
для: Volodja
(28.02.2006 в 04:06)
| | Тогда вам подойдёт следующий скрипт
<?php
$contents = file_get_contents("http://www.rambler.ru/srch?oe=1251&words=%EA%E0%F2%E0%EB%EE%E3&start=1");
$pattern = "|<li>[^>]+><a [^ ]+ [^ ]+ href=\"([^\"]+)\"[^>]+>(.+)</a>|isU";
// Выполняем поиск по регулярному выражению
preg_match_all($pattern, $contents, $out, PREG_PATTERN_ORDER);
// Выводим результаты поиска
for($i = 0; $i < count($out[1]); $i ++)
{
echo "<a href=".$out[1][$i].">".$out[2][$i]."</a><br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(28.02.2006 в 12:21)
| | Большое спасибо, Вы как всегда выручили. | |
|
|
|
|
|
|
|
для: Volodja
(28.02.2006 в 17:17)
| | Спасибо за выше приведённый код для вытаскивания ссылок, но немоглибы
помочь сделать вытаскивание текста, я вот попытался написать что-то
$pattern_text = '|<div class="text">([^ ]*)</div>|i';
preg_match_all($pattern_text, $contents, $out_text, PREG_PATTERN_ORDER);
for($i = 0; $i < count($out_text[1]); $i++){
$text .= $out_text[1][$i].'<br>';
}
echo $text;
|
но тут почемуто выводиться не 15 записей а всего 13, к примеру если сравнить что выдаст сам рамблер
http://www.rambler.ru/srch?set=www&words=%E1%E5%F1%EF%F0%EE%E2%EE%E4%ED%EE%E5+%E2%E8%E4%E5%EE%ED%E0%E1%EB%FE%E4%E5%ED%E8%E5&btnG=%CD%E0%E9%F2%E8%21
результат привёдённого кода несоответсвует с результатом рамблера, там 14,15 запись
не определяется почемуто
Немоглибы помочь с этим? | |
|
|
|