Shapito27
@Shapito27
php, laravel

Почему может происходить превышение тайм аута при парсинге (simple_html_dom)?

В парсинге я новичок.
Ситуация требует использовать php. Использую php библиотеку simple_html_dom.
Подключена корректно, функции видны.
require_once 'simple_html_dom.php';
$html = file_get_html('http://www.kommersant.ru/');

Всего 2 строчки кода и уже тут проблемы. При переходе на страничку, она довольно долго грузится и в итоге происходит превышение по таймауту на выполнение скрипта и ошибка 500.

Я так понимаю dom дерево этого сайта слишком объемное и скрипт не успевает отработать в отведенное ему время.

Был ли у кого-нибудь опыт с этой библиотекой?
Как сделать, чтобы скрипт успевал отработать?
  • Вопрос задан
  • 517 просмотров
Решения вопроса 2
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
Как ты и сказал, это таймаут на выполнение скрипта твоим сервером.

Попробуй запустить скрипт из командной строки:
# php parser.php

Второй вариант это увеличить время работы скриптов, но я бы не рекомендовал это делать. Парсеры лучше запускать из командной строки.

Кроме того, обрати внимание, что в этой библиотеке есть метод: $dom = str_get_html($html) (кажется так), соответственно, ты можешь вначале скачать страницу с помощью file_get_contents или Curl и потом уже работать именно с контентом. Это поможет разделить логику непосредственно на загрузку и парсинг контента, что в свою очередь поможет разобраться с каждой проблемой по отдельности.
Ответ написан
Комментировать
Shapito27
@Shapito27 Автор вопроса
php, laravel
проблема так и не решилась, скрипт всё равно долго думал, очень долго.
В итоге использовал парсер отсюда forum.php.su/topic.php?forum=35&topic=834#
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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