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

Обход сайта с относительными ссылками

При обходе веб-сайта вы можете столкнуться с различными типами ссылок, которые нужно обработать. Для удобного обхода таких ссылок мы предоставляем метод enqueueLinks() в контексте краулера, который автоматически находит ссылки и добавляет их в RequestQueue.

Мы предлагаем 3 стратегии обхода относительных ссылок:

примечание

В этих примерах мы используем CheerioCrawler, однако тот же метод доступен для PuppeteerCrawler и PlaywrightCrawler, и используется точно так же.

Примеры доменов

Для URL вида https://subdomain.example.com, enqueueLinks() будет обрабатывать относительные ссылки или ссылки, указывающие на то же доменное имя, независимо от поддомена.

Например, будут обработаны ссылки вида https://subdomain.example.com/some/path, /absolute/example или ./relative/example, а также ссылки на другие поддомены или основной домен, например https://other-subdomain.example.com или https://example.com.

Run on
import { CheerioCrawler, EnqueueStrategy } from 'crawlee';

const crawler = new CheerioCrawler({
maxRequestsPerCrawl: 10, // Ограничение для только 10 запросов (не используйте, если хотите краулить все ссылки)
async requestHandler({ request, enqueueLinks, log }) {
log.info(request.url);
await enqueueLinks({
// Установка стратегии в 'same-domain' добавит все найденные ссылки, которые находятся на том же хосте, что и request.loadedUrl или request.url
strategy: EnqueueStrategy.SameDomain,
// Альтернативно вы можете передать строку 'same-domain'
// strategy: 'same-domain',
});
},
});

// Запускаем краулер с начальным запросом
await crawler.run(['https://crawlee.dev']);