Перейти к основному содержимому

Базовый краулер

Это самый простой пример использования Crawlee, демонстрирующий основные компоненты, такие как BasicCrawler. Однако вам, вероятно, не нужно углубляться в такие детали, и лучше начать с более функциональных краулеров, например, CheerioCrawler или PlaywrightCrawler.

Этот скрипт просто загружает несколько веб-страниц с помощью обычных HTTP-запросов, используя служебную функцию sendRequest (которая внутренне использует npm-модуль got-scraping). Затем он сохраняет их исходный HTML-код и URL в стандартном наборе данных. При локальной конфигурации данные сохраняются в виде JSON-файлов в директории ./storage/datasets/default.

Run on
import { BasicCrawler } from 'crawlee';

// Создаем BasicCrawler - самый простой краулер, позволяющий реализовать собственную логику краулинга.
const crawler = new BasicCrawler({
// Эта функция будет вызываться для каждого URL для краулинга.
async requestHandler({ pushData, request, sendRequest, log }) {
const { url } = request;
log.info(`Processing ${url}...`);

// Загружаем HTML-код страницы с помощью служебной функции sendRequest краулера.
// По умолчанию метод будет использовать текущий запрос, который обрабатывается, поэтому вам не нужно его указывать.
// Вы также можете предоставить собственный запрос, если хотите.
const { body } = await sendRequest();

// Сохраняем HTML и URL в набор данных по умолчанию.
await pushData({
url,
html: body,
});
},
});

// Список начальных URL для краулинга. Здесь мы используем несколько жестко закодированных URL.
await crawler.addRequests([
'https://www.google.com',
'https://www.example.com',
'https://www.bing.com',
'https://www.wikipedia.com',
]);

// Запускаем краулер и ждем, пока он закончит работу.
await crawler.run();

console.log('Краулер закончил работу.');