|
|
|
| Сижу вот уже несколько дней и пытаюсь заставить работать систему мониторинга позиций в гугле...
возникла проблема, регулярка в архиве не работает на форуме не нащёл ничего того чтобы мне помогло,(сам смог только выдернуть либо просто ссылки (но щитаются все ссылки на странице и если запрос первый по рейтингу то он будет 32 тк до него 31 ссылка) либо позицию с картинками вместе)
возможно я чего то не знаю в синтаксисе на данный момент что то упустил...
вобщем стоит задача из полученого кода страницы выдернуть блок заключенный в
<li class="g"><h3 class="r"> тэги внутри которых и лежит ссылка
я могу по отдельности вытащить <li class="g"> или <h3 class="r"> или саму ссылку в теге <a> а вот как всё это обьединить в регулярном выражении не понимаю,
может обьяснит кто.... | |
|
|
|
|
|
|
|
для: Evgeney
(04.12.2009 в 00:36)
| | неужели никто не шарит в этом? неверю! | |
|
|
|
|
|
|
|
для: Evgeney
(04.12.2009 в 00:36)
| | Можно отталкиваться от следующего скрипта
<?php
function google($url)
{
// Результирующий массив
$result = array();
// Загружаем содержимое страницы
$contents = file_get_contents($url);
// Регулярное выражение
$pattern = '|<li[\s]class=g><h3[\s]class=r><a href=\"([^\"]+)\"[^>]*>(.+)</a>|isU';
// Выполняем поиск по регулярному выражению
preg_match_all($pattern, $contents, $out, PREG_PATTERN_ORDER);
// Помещаем результаты в результирующий массив
for($i = 0; $i < count($out[1]); $i++)
{
$result[$i]['url'] = $out[1][$i];
$result[$i]['name'] = $out[2][$i];
}
return $result;
}
$keyword = "Выдай мне что-нибудь о великий...";
$url = "http://www.google.ru/search?q=".urlencode($keyword).
"&complete=1&hl=ru&lr=&start=0&sa=N";
$arr = google($url);
for($j = 0; $j < count($arr); $j++)
{
echo "Позиция N ".($i*10 + $j + 1)."<br>";
echo "<a href={$arr[$j][url]}>{$arr[$j][name]}</a><br>";
echo "<a href=$url>Страница Google</a><br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(15.12.2009 в 13:01)
| | Спасибо | |
|
|
|