Парсер Для Стены В Вк

Тема в разделе "PHP программирование", создана пользователем BlackShadow, 29 окт 2012.

  1. BlackShadow

    BlackShadow Well-Known Member

    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    0
    Узнал про парсинг страниц, а также simple html dom.
    пытаюсь спарсить со стены группы в ВК все записи. сообщения содержатся в div с классом wall_post_text.
    Вот код:
    Код (PHP):
    <?php
    set_time_limit(0);
    include('simple_html_dom.php'); // подключаем библиотеку
    $html = new simple_html_dom(); // создаем объект
    $html->load("http://vk.com/wall-24713873?own=1"); //загружаем HTML-код
    $elements = $html->find(".wall_post_text"); // находим все элементы с классом «wall_post_text»
    $i = 0; // создаём итератор
    $posts = array(); // создаём массив для хранения результатов
    echo count($books);
    foreach($elements as $element) {
    echo "$posts[$i]<br>";
    $i++; //увеличиваем значение итератора
    }
    ?>
    Но он не работает. Подскажите, что не так?

    Добавлено: модифицировал код:
    Код (PHP):
    <?php
    set_time_limit(0);

    include('simple_html_dom.php'); // подключаем библиотеку

    //$html = new simple_html_dom(); // создаем объект

    $html = file_get_html("http://vk.com/wall-24713873?own=1"); //загружаем HTML-код

    foreach($html->find(".wall_post_text") as $element)
    echo "$element->div<br>";
    ?>
    Как мне олучить содержимое между <div> и </div>?
     
  2. viboxjuwin

    viboxjuwin New Member

    Регистрация:
    25 дек 2013
    Сообщения:
    2
    Симпатии:
    0
    Вот пример действующего парсера:
    <?php

    //откуда будем парсить информацию
    $content = file_get_contents('http://страница с которой парсим.ру/');

    //Если при парсинге вместо нормальных букв вы увидите кроказябли, то замените file_get_contents('http://страница с которой парсим.ру/'); на //iconv("windows-1251", "UTF-8", file_get_contents('http://страница с которой парсим.ру/')); - "windows-1251", и "UTF-8", меняйте местами, пока текст не будет выглядеть нормально.

    // Определяем позицию строки, до которой нужно все отрезать
    $pos = strpos($content, '<p class="news_date"><span class="dNews">');

    //Отрезаем все, что идет до нужной нам позиции
    $content = substr($content, $pos);

    // Точно таким же образом находим позицию конечной строки
    $pos = strpos($content, '<p style="text-align:left"><a href="/press-centr/news/" class="arxiv">');

    // Отрезаем нужное количество символов от нулевого
    $content = substr($content, 0, $pos);

    //если в тексте встречается текст, который нам не нужен, вырезаем его
    $content = str_replace('НЕнужныйтекст','НУжныйтекст', $content);

    // выводим спарсенный текст.
    echo ($content);

    //echo "вставляем сюда завершающий код";
    ?>

    Действует на 100%. Удачи.)
     
Загрузка...

Поделиться этой страницей