JavaScript | Как получить все адреса из sitemap.xml?

JavaScript | Как получить все адреса из sitemap.xml?

sitemap.xml — это специальный файл для поисковых систем, который содержит URL-адреса на внутренние страницы сайта, представляющие интерес для владельца сайта.

sitemap.xml анализируется поисковыми роботами, а затем страницы сайта попадают в поисковый индекс и могут начать показываться в поисковых системах по запросам пользователей.

 

Что нужно знать?

sitemap.xml может хранить максимально 50000 адресов в одном файле. Поэтому если количество страниц сайта превышает 50К, тогда файл разделяется на части (на отдельные сайтмапы)

Пример индексного САЙТМАПА из САЙТМАПОВ с адресами:

https://www.mvideo.ru/sitemap.xml
Индексный SITEMAP.XML
Индексный SITEMAP.XML

Пример САЙТМАПА с адресами:

https://petfood24.ru/sitemap.xml
SITEMAP.XML с адресами
SITEMAP.XML с адресами

 

Получение адресов из обычного sitemap.xml с элементами <url> и <loc>

Получаем все элементы <loc>:

document.getElementsByTagName("loc")
Получили все элементы loc - JavaScript
Получили все элементы loc — JavaScript

Мы обратились к объекту document и вызвали его свойство getElementsByTagName. В качестве параметра мы передали строку «loc», которая обозначает выборку элементов <loc>. В ответ нам вернулся прототип объекта HTMLCollection.

 

Извлекаем адреса из элементов <loc>

Array.from(document.getElementsByTagName("loc")).map(i=>i.innerHTML)
Массив с адресами из SITEMAP.XML - JavaScript
Массив с адресами из SITEMAP.XML — JavaScript

Каждый элемент <loc> хранит в себе нужные нам адреса. Чтобы их извлечь, нужно сначала преобразовать HTML-коллекцию в массив. Потом нужно пробежаться по массиву методом map() и преобразовать данные (извлечь «внутрянки» между открывающим и закрывающим тегами).

Теперь у нас есть массив из 10386 строк, которые являются адресами.

 

Итог

Данный функционал будет полезен тем, кто хочет получать ссылочный профиль сайта при помощи файла sitemap.xml.

Данный материал также полезен тем, кто ищет ответ на поисковый запрос «javascript sitemap extractor».

 

Информационные ссылки

Официальная страница стандарта SITEMAPhttp://www.sitemaps.org/

DOM

DOM | Интерфейс Document