Необходимо для начала организовать парсинг информации из поисковика google. Всё написано и всё почти работает.
Есть код, на других сайтах он проходит пагинацию. На гугле нет. В коде мы по селектору получаем элементы страницы и делаем уже что-то с ними. Сейчас я вывожу на экран, чтобы видеть результат.
public function pagination($url, $start, $end){
//Получение данных на странице с пагинацией
if ($start < $end) {
$file = file_get_contents($url);
$doc = phpQuery::newDocument($file);
foreach ($doc->find('#res') as $art) {
$art = pq($art);
$this->range = $art->find('#search');
echo '<hr>';
}
$next = 'https://www.google.com' . $doc->find('#nav a')->next()->attr('href');
var_dump($next);
if (!empty($next)) {
$start++;
$this->pagination($next, $start, $end);
}
}
}
Строчка $next = '
https://www.google.com' . $doc->find('#nav a')->next()->attr('href'); отвечает за поиск нового элемента в пагинации. Но если вардампнуть переменную $next, она окажется пустая, аттребут href не получен.
Если убрать из строки next(), переменная будет получать нужное количество ссылок из пагинации и получит элементы со второй страницы.
Может кто знает аналог метода next() PhpQuery? Так как, повторюсь, код рабочий, но именно на гугле next() всё ломает. В результате мне нужно пройтись по пагинации и спарсить страницы.