Есть один сайт, на котором есть много страниц, с которых мне надо взять 1 лишь блок с информацией. Таких страниц примерно под 10 000. Анкеты они идут упорядоченно, не в разброс.
Мой алгоритм таков: обращаемся через CURL к каждой странице в цикле, дальше через библиотеку phpQuery ищем класс, в котором находится нужная инфа нам, и выводим всё это на страницу. Вот код, как это сейчас выглядит:
<?php
require_once 'phpquery/phpQuery/phpQuery.php';
ini_set('max_execution_time', 0);
for($i = 1; $i <= 600; $i++) { // обработаем 600 анкет
$url = 'https://тут_адрес_сайта/anketa/' . $i; // выходит что будет обрабатываться каждая анкета начиная с 1 до 600
$val = curlIt($url);
$html = phpQuery::newDocument($val);
$pq = pq($html);
$elem = $pq->find('.distance'); // получаем содержимое внутри класса distance
if(!$elem) continue; // если такого блока нет пропускаем
echo $elem; // Выводим то содержимое класса .distance
}
function curlIt($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
Это всё срабатывает, но когда выводим 50 результатов, и при этом всё равно ждать приходится несколько минут. Попробовал вывести 500 результатов, по истечению 10 минут так и не дождался результата.
Как это сделать правильно, и чтобы вышло побыстрее?