Задать вопрос
deadloop
@deadloop
Активно осваиваю PHP

Как спарсить данные со второй страница?

Я изучаю PHP. И сейчас изучаю тему парсеров. Столкнулся с такой проблемой, есть код который парсит данные с первой страницы, а со второй (третьей) страницы не хочет парсить, где я допустил ошибку?

<?php

    include_once __DIR__ .'./curl_query.php';
    include_once __DIR__ .'./src/phpQuery.php';

    function print_arr($arr){
        echo '<pre>' . print_r($arr, true) . '</pre>';
    };

    function parser($html, $start, $end) {

        if($start < $end)
        {
            $doc = phpQuery::newDocument($html);
            foreach($doc->find('.post-list .post-list-item') as $post)
            {
                $post = pq($post);
                $post_title = $post->find('.post-name')->text();
                echo $post_title . '<br>';
            }

            $next = $doc->find('.pagination .active')->next()->attr('href');
            if(!empty($next))
            {
                $start++;
                parser($next, $start, $end);
            }
            phpQuery::unloadDocuments();
        }

    }

    $html = curl_get('https://www.kolesa.ru/news');
    $start=0;
    $end=3;
    parser($html, $start, $end);
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@sergey_harchevnikov
Web программист
Надо сделать массив с url'ами типа
https://www.kolesa.ru/news?page=1
https://www.kolesa.ru/news?page=2
https://www.kolesa.ru/news?page=3
И в функцию parser добавить цикл что бы он почередно заходил по этим ссылкам
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽