Об этом проекте
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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.