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

BlackShadow

Well-Known Member
04.02.2011
111
3
#1
Узнал про парсинг страниц, а также 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>?
 

viboxjuwin

New Member
25.12.2013
2
0
#2
Вот пример действующего парсера:
<?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%. Удачи.)