главная/Node js: парсим sitemap и получаем все ссылки
Node js - парсим sitemap xml

Node js: парсим sitemap и получаем все ссылки

Задача такая: получить карту сайта (sitemap) и вытащить из нее все ссылки в массив. Для парсинга мы будем использовать node js и библиотеку Sitemapper.

Установка библиотеки.

Подразумевается, что у вас уже установлен Node js, поэтому в папке проекта инсталлим нужную нам библиотеку.

npm install sitemapper --save

Функция для сбора ссылок с карты сайта.

А теперь самое интересное, пишем функцию и оборачиваем ее в Promise (промис). Почему промис? Да потому, что потом удобнее и читабельнее идти по цепочке then() для дальнейшего запуска зависимостей.

const sitemap = 'https://www.site.com/sitemap.xml';


const getUrls = ( sitemap ) => {
	return new Promise( ( resolve, reject ) => {
		const sitemapObj = new Sitemapper();

		sitemapObj.fetch( sitemap ).then( function( sites ) {
			resolve( sites );
		} );
	} );
}

Теперь мы можем вызвать нашу функцию с промисом. Повесится на неё через then() и распечатать все URL после завершения парсинга.

getUrls( sitemap ).then( ( urls ) => {
	console.log( urls );
} );