Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбор страницы Google
 
 автор: Evgeney   (04.12.2009 в 00:36)   письмо автору
 
 

Сижу вот уже несколько дней и пытаюсь заставить работать систему мониторинга позиций в гугле...
возникла проблема, регулярка в архиве не работает на форуме не нащёл ничего того чтобы мне помогло,(сам смог только выдернуть либо просто ссылки (но щитаются все ссылки на странице и если запрос первый по рейтингу то он будет 32 тк до него 31 ссылка) либо позицию с картинками вместе)
возможно я чего то не знаю в синтаксисе на данный момент что то упустил...
вобщем стоит задача из полученого кода страницы выдернуть блок заключенный в
<li class="g"><h3 class="r"> тэги внутри которых и лежит ссылка
я могу по отдельности вытащить <li class="g"> или <h3 class="r"> или саму ссылку в теге <a> а вот как всё это обьединить в регулярном выражении не понимаю,
может обьяснит кто....

  Ответить  
 
 автор: Evgeney   (15.12.2009 в 02:02)   письмо автору
 
   для: Evgeney   (04.12.2009 в 00:36)
 

неужели никто не шарит в этом? неверю!

  Ответить  
 
 автор: cheops   (15.12.2009 в 13:01)   письмо автору
 
   для: 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$outPREG_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>";
  }
?>

  Ответить  
 
 автор: Evgeney   (23.12.2009 в 17:25)   письмо автору
 
   для: cheops   (15.12.2009 в 13:01)
 

Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования