Возможно ли на php создать асинхронный парсер?

Ссылка скопирована
1 ответ

По просторам интернета не найти, как сделать асинхронный парсер на php. Это вообще возможно? Есть ли соответствующие библиотеки для этого?

Дополнительно:

Что такое "асинхронный парсер"?

  • Василий Банников, имхо мальчик путает асинхронность с многопоточностью...
  • Элементарно, никаких библиотек не нужно - multicurl или pcntl_fork

    • О, спасибо, уже слегка нагуглил.

    Ответы:

    Можно, но php для данных целей не лучший выбор
    И парсер нет смысла паралелить так как можно улететь в бан за слишком частые запросы

    При помощи AMPHP можно использовать неблокирующие HTTP запросы.
    Используя очереди сообщений, можно асинхронно обрабатывать полученное тело ответа от запроса.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Роман IT Ответ

    Да, на PHP также можно создать асинхронный парсер. Хотя PHP не является асинхронным языком программирования изначально, существуют различные библиотеки и инструменты, которые позволяют реализовать асинхронное выполнение кода на PHP.

    Одним из самых популярных инструментов для создания асинхронных приложений на PHP является библиотека ReactPHP. ReactPHP предоставляет набор компонентов и классов для работы с сетевыми соединениями, файловой системой, HTTP-запросами и другими асинхронными операциями.

    Пример создания асинхронного парсера на PHP с использованием ReactPHP:

    require 'vendor/autoload.php';
     
    $loop = React\EventLoop\Factory::create();
    $browser = new Clue\React\Buzz\Browser($loop);
     
    $browser->get('https://example.com')->then(function (Psr\Http\Message\ResponseInterface $response) {
        $body = (string) $response->getBody();
        // Здесь можно выполнить парсинг полученного HTML-кода
        echo $body;
    });
     
    $loop->run();

    require 'vendor/autoload.php'; $loop = React\EventLoop\Factory::create(); $browser = new Clue\React\Buzz\Browser($loop); $browser->get('https://example.com')->then(function (Psr\Http\Message\ResponseInterface $response) { $body = (string) $response->getBody(); // Здесь можно выполнить парсинг полученного HTML-кода echo $body; }); $loop->run();

    В данном примере мы используем библиотеку ReactPHP для отправки HTTP-запроса и получения ответа. После получения ответа, мы можем выполнить парсинг HTML-кода с помощью выбранной библиотеки парсинга (например, Symfony DomCrawler или PHP Simple HTML DOM Parser).

    Таким образом, на PHP также можно реализовать асинхронный парсер с помощью специальных библиотек и инструментов, таких как ReactPHP.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно