1import { Actor } from 'apify';
2import { CheerioCrawler, Dataset } from 'crawlee';
3
4await Actor.init();
5
6const startUrls = ['https://www.bazaraki.com/real-estate-for-sale/apartments-flats/?ordering=newest'];
7
8const crawler = new CheerioCrawler({
9 requestHandler: async ({ request, $, log }) => {
10 log.info(`Парсим: ${request.url}`);
11
12 $('.js-item-listing').each((_, el) => {
13 const title = $(el).find('a.advert__content-title').text().trim() || null;
14 const url = 'https://www.bazaraki.com' + ($(el).find('a.advert__content-title').attr('href') || '');
15 const price = $(el).find('a.advert__content-price._not-title span').text().replace(/\s+/g, ' ').trim() || null;
16
17 const result = { title, url, price };
18
19 console.log(result);
20 Dataset.pushData(result);
21 });
22 },
23});
24
25await crawler.run(startUrls);
26await Actor.exit();