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

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.