Базовый краулер
Это самый простой пример использования 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('Краулер закончил работу.');