• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы BlackShadow
  • Дата начала
B

BlackShadow

Узнал про парсинг страниц, а также 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>?
 
V

viboxjuwin

Вот пример действующего парсера:
<?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%. Удачи.)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!