Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Почему не парсятся все div здесь?

Всем привет! Парсим страницу с помощью simple_html_dom, далее выполняем перебор объяв на странице и здесь главная проблема, нам выводит не все 6 объяв, а лишь первые 3... Почему и как поправить?
Заранее спасибо!

Шапка:
// подключаем библиотеку
require_once 'simple_html_dom.php';
// url для парсинга
$link = 'https://www.avito.ru/moskva/predlozheniya_uslug/transport_perevozki/pereyezdy?q=грузоперевозки';
// загружаем страницу
$html = file_get_html($link);


В таком варианте выводится 6 объяв:
// содержимое премиум-контейнера
foreach ($html->find('div.js-catalog_before-ads') as $premiumContainer) {
    print_r($premiumContainer->innertext);
};


Но, как только мы начинаем перебор объяв в премиуме, то нам показывает лишь первые 3 из 6 возможных объяв:
// находим блок с пермиум объявами
foreach ($html->find('div.js-catalog_before-ads') as $premiumContainer) {
    // находим объявы
    foreach ($premiumContainer->find('div.item') as $article) {
        print_r($article->innertext);
    };
};
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
turintomsk
@turintomsk
developer
Попробуйте так:
$items = $html->find('div.js-catalog_before-ads > div.item');
foreach ($items as $article) {
    print_r($article->innertext);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы