Как парсить большое количество данных?

Здравствуйте. Пытаюсь использовать PHP HTML DOM Parser для парсинга множества страниц: изначально около сотни, получаю через file_get_html, нахожу нужное и формирую ассоциативный массив в котором хранится сотня ссылок, далее снова через file_get_html пробегаюсь по массиву из этих ссылок и получаю еще сотню страниц, в каждой из которых нахожу по ~50 нужных мне строк.
В результате всё валится и требуются минуты, чтобы всё нормально получить.

Как быть в таких ситуациях, что использовать?
  • Вопрос задан
  • 1541 просмотр
Решения вопроса 1
DevMan
@DevMan
file_get_html? really?
откройте для себя параллельную загрузку документов,
а затем локально парсите их в фоне как вам угодно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
В дополнение к остальным ораторам: вместо всяких дом-парсеров попробуйте использовать обычный preg_match_all и регулярки.
Ускорение будет в 10-100+ раз вероятней всего)
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
set_time_limit(0);
ini_set('memory_limit', '512M');
Ответ написан
Комментировать
bigton
@bigton
Web-программист
Создайте очередь задач ввиде простой таблицы в БД.
Напишите один скрипт который будет брать из таблицы адрес, скачивать, класть скаченное в папку и завершаться.
Напишите другой скрипт который скаченное будет разбирать, выделять ссылки и класть ссылки в таблицу для первого скрипта.
Запускайте каждый скрипт с помощью крона и небольшого bash скрипта N раз в минуту.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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