Обход всех ссылок на сайте
В этом примере используется метод enqueueLinks()
для добавления новых ссылок в RequestQueue
по мере того, как краулер переходит со страницы на страницу. Этот пример также можно использовать для поиска всех URL-адресов на домене, удалив опцию maxRequestsPerCrawl
.
подсказка
Если параметры не указаны, по умолчанию метод будет добавлять только ссылки, находящиеся в том же поддомене. Это поведение можно контролировать с помощью параметра strategy
.
Подробнее об этом параметре можно узнать в примерах Обход относительных ссылок
.
- Cheerio Crawler
- Puppeteer Crawler
- Playwright Crawler
Run on
import { CheerioCrawler } from 'crawlee';
const crawler = new CheerioCrawler({
async requestHandler({ request, enqueueLinks, log }) {
log.info(request.url);
// Добавляем все ссылки из страницы в очередь запросов
await enqueueLinks();
},
maxRequestsPerCrawl: 10, // Ограничение для только 10 запросов (не используйте, если хотите краулить все ссылки)
});
// Запускаем краулер с начальным запросом
await crawler.run(['https://crawlee.dev']);
подсказка
Для запуска этого примера на платформе Apify выберите образ apify/actor-node-puppeteer-chrome
для вашего Dockerfile.
Run on
import { PuppeteerCrawler } from 'crawlee';
const crawler = new PuppeteerCrawler({
async requestHandler({ request, enqueueLinks, log }) {
log.info(request.url);
// Добавляем все ссылки из страницы в очередь запросов
await enqueueLinks();
},
maxRequestsPerCrawl: 10, // Ограничение для только 10 запросов (не используйте, если хотите краулить все ссылки)
});
// Запускаем краулер с начальным запросом
await crawler.run(['https://crawlee.dev']);
подсказка
Для запуска этого примера на платформе Apify выберите образ apify/actor-node-playwright-chrome
для вашего Dockerfile.
Run on
import { PlaywrightCrawler } from 'crawlee';
const crawler = new PlaywrightCrawler({
async requestHandler({ request, enqueueLinks, log }) {
log.info(request.url);
// Добавляем все ссылки из страницы в очередь запросов
await enqueueLinks();
},
maxRequestsPerCrawl: 10, // Ограничение для только 10 запросов (не используйте, если хотите краулить все ссылки)
});
// Запускаем краулер с начальным запросом
await crawler.run(['https://crawlee.dev']);