КОнтакты, предложения, отзывы

.rar или .zip
Вложение
Онлайн-чат
На этом сайте, вы найдёте полезную информацию, практические советы в области веб-программирования, веб-дизайна и веб-разработок в целом. Мы с удовольствием поделимся с вами реальными примерами и решениями задач, связанных с jQuery , JavaScript , PHP и MySQL , версткой сайтов , поможем разобраться новичкам с современными технологиями, такими как Ajax , HTML5 , CSS3 и многими другими.

Простейший парсинг сайта с phpQuery

phpQuery - аналог jQuery, только на php. Все отличие заключается в использовании функции pq вместо $, ну и к командам нужно обращаться через -> а не точку.
Для примера и заодно обзора библиотеки спарсим мой сайт, выберем все статьи из каждой категории и заодно посмотрим сколько их всего накапало.. Итак:

Пример

  require('vendor/autoload.php'); // подключаем аутолоадер композера (см. предыдущую статью)

  $domain = 'http://web4myself.ru';

  $html = file_get_contents($domain);

  phpQuery::newDocument($html); // создаём новый объект phpQuery (можно записать в переменную)

  // по аналогии с jQuery
  $title = pq('title')->text();
  $preview = pq('#main_preview')->html();
  $attr = pq('a[href$=patterns]')->attr('class');

  echo $title."<br><br>";
  echo $preview."<br><br>";
  echo $attr."<br><br>";

  // выбираю все ссылки из меню категорий
  $categories = pq('#side_nav')->find('a.ajax_select');

  // этот объект можно проходить в цикле
  foreach($categories as $category){
    
    $href = pq($category)->attr('href'); // не забудьте обернуть в функцию pq()
    $cat = trim($href, '/');
    echo "<h1>$cat</h1>";
    
    // получаем страницы с категориями
    $content = file_get_contents($domain . $href);
    $content = phpQuery::newDocument($content);
    $box = $content->find('.grid_box');
    
    $box->find('.post_preview')->remove();
    
    // получаем все ссылки на статьи из данной категории
    $posts = pq('.grid_box a:first-child');
    
    foreach($posts as $post){
      $post = pq($post);
      $halfHref = $post->attr('href');
      $fullHref = "<a href='".$domain.'/'.$halfHref."' target='_blank'>".$domain.'/'.urldecode($halfHref)."</a>";
      echo $fullHref."<br>";
    }
    
  }

  phpQuery::unloadDocuments(); // не забываем освободить память
Конечно, вам просто так никто не даст серьёзные сайты парсить, для этих целей нужны более мощные инструменты, cURL и другие..
2017.05.24 154

Два основных правила программиста: — Чудес не бывает. — Дерьмо случается.
Войдите или Зарегистрируйтесь чтобы оставить комментарий

Комментарии


  • Спасибо

  • 2017.05.30 - 17:28

Яндекс.Метрика Яндекс.Метрика