Об этом проекте
Crawlee — это библиотека для веб-скрапинга и автоматизации браузера для Node.js, написанная на TypeScript и распространяемая как NPM-пакет `crawlee`. Она призвана охватывать краулинг и скрапинг от начала до конца, предоставляя единый интерфейс как для HTTP-краулинга, так и для реального браузерного краулинга.
Ключевые возможности, описанные в README:
- Единый интерфейс для HTTP- и headless-браузерного краулинга
- Постоянная очередь URL-адресов для обхода с поддержкой порядка обхода в ширину и в глубину
- Подключаемое хранилище для табличных данных и файлов, по умолчанию использующее локальный каталог `./storage`
- Автоматическое масштабирование в зависимости от доступных системных ресурсов
- Встроенная ротация прокси и управление сессиями
- Жизненные циклы, настраиваемые с помощью хуков
- CLI для создания проектов (`npx crawlee create my-crawler`)
- Настраиваемая маршрутизация, обработка ошибок и повторные попытки
- Готовые к развертыванию Dockerfile
- Написана на TypeScript с использованием обобщений
Возможности HTTP-краулинга включают поддержку HTTP2 без дополнительной настройки (даже для прокси), автоматическую генерацию заголовков, похожих на браузерные, воспроизведение TLS-отпечатков браузера, встроенные быстрые HTML-парсеры (Cheerio и JSDOM), а также возможность скрапить JSON API.
Возможности реального браузерного краулинга включают рендеринг JavaScript и создание скриншотов, поддержку headless- и headful-режимов, генерацию человекообразных отпечатков без дополнительной настройки, автоматическое управление браузером, а также возможность использовать Playwright и Puppeteer через один и тот же интерфейс в Chrome, Firefox, Webkit и других браузерах.
Для установки требуется Node.js 16 или выше. Рекомендуемый быстрый старт использует Crawlee CLI, а ручная установка предполагает добавление `crawlee` и библиотеки автоматизации браузера, такой как `playwright`, в существующий проект. Короткий пример показывает `PlaywrightCrawler`, который записывает заголовки страниц, помещает результаты в датасет и добавляет ссылки в очередь. Бета-сборки публикуются как `crawlee@next`.
Проект разрабатывается компанией Apify, является опенсорсным и работает где угодно, с документированной поддержкой развертывания на платформе Apify. Он лицензирован под Apache License 2.0. Каналы поддержки включают GitHub issues, Stack Overflow, GitHub Discussions и Discord-сервер. Также упоминается Python-аналог — Crawlee for Python.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.