Об этом проекте

Crawlee — это comprehensive библиотека для веб-скрапинга и автоматизации браузеров на Python, созданная для помощи разработчикам в быстром создании надежных краулеров. Она предоставляет комплексное решение для обхода и сбора данных — от обнаружения URL до извлечения и хранения данных. Ключевые возможности: - **Единый интерфейс** для HTTP- и headless-браузерного обхода - **Автоматический параллельный обход** на основе системных ресурсов - **Подсказки типов** для улучшения опыта разработки и снижения числа ошибок - **Автоматические повторы** при ошибках или блокировках - **Ротация прокси** и управление сессиями - **Настраиваемая маршрутизация запросов** для направления URL в соответствующие обработчики - **Постоянная очередь URL** для обхода - **Подключаемое хранилище** для табличных данных и файлов - **Надежная обработка ошибок** Crawlee предлагает два основных типа краулеров: - **BeautifulSoupCrawler**: использует HTTP-библиотеку и BeautifulSoup для парсинга HTML, идеален для эффективного извлечения данных без выполнения JavaScript - **PlaywrightCrawler**: использует headless-браузер через Playwright, подходит для сайтов с интенсивным использованием JavaScript, требующих взаимодействия Библиотека поддерживает различные библиотеки парсинга, включая Parsel, BeautifulSoup и сырой HTTP, а также может загружать файлы, такие как HTML, PDF, JPG, PNG. Работает как в режиме с отображением окна, так и в headless-режиме. По сравнению со Scrapy, Crawlee основана на asyncio, имеет полные подсказки типов, более простую интеграцию (обычные Python-скрипты), сохранение состояния при прерываниях и организованные хранилища данных (наборы данных и хранилища ключ-значение). Установка выполняется просто через pip с дополнительными опциями для расширенных функций. Доступен CLI-инструмент для быстрой настройки проекта с шаблонами. Crawlee разработана Apify и может быть развернута на платформе Apify для облачного выполнения. Документация, руководства и примеры доступны на сайте проекта Crawlee; также доступна реализация на TypeScript для проектов на JavaScript/TypeScript.