sitemap.xml есть почти у всякого
магазина, и в нём лежит ровно то, что мы иначе добываем заходами.
Поэтому готовое решение начинает с карты, а по ссылкам идёт только тогда, когда
карты нет.
Что это даёт
Цену. Обход по ссылкам платит заходом за каждую страницу, с которой берёт ссылки: чтобы добраться до тысячи товаров, надо сперва собрать сотню разделов. Карта отдаёт ту же тысячу за один-два захода, и оплаченный объём тратится только на то, ради чего вы платили. Чистоту. В карту сайта не кладут фасеты. Метки, подбор по цвету, сортировки — всё, что описано на странице что не каталог, — владелец сайта индексировать не хочет, а значит и в карту не пишет. Мусор отсекается даром и до первого захода.Как она ищется
robots.txt— единственное место, где сайт сам говорит, где его карта. Спрашиваем его первым.- Если он молчит — пробуем обычные имена:
/sitemap.xml,/sitemap_index.xml,/sitemap-index.xmlи ещё пару.
<sitemapindex>) разворачивается на этаж вглубь; сама она в
результат не попадает — в ней не страницы сайта, а другие карты.
Что из неё берётся
Только адреса — названий разделов в карте нет. Поэтому карта заменяет обходу способ найти страницы, но не способ их понять: чем страница оказалась и как называется, по-прежнему читает модель на самой странице. Адреса группируются по форме пути, и роли раскладывает модель:Когда карты нет
Обычный исход, а не сбой. Задание идёт прежним путём: разведка смотрит стартовую страницу, находит формы ссылок на разделы и товары, и обход спускается по ним. Так же поступаем, если карта нашлась, но каталога в ней меньше восьми адресов — по обрывку каталога не собрать.Что именно вышло, видно в записке задания:
карта сайта https://shop.example/sitemap-catalog.xml: 2549 адресов, из них товаров 2418, разделов 37, отброшено не каталога 94 — или карты сайта нет — идём по ссылкам.Обычный обход по своему правилу
Всё сказанное относится к готовым решениям./v1/crawl с правилом, которое
написали вы, карту не ищет и в неё не заглядывает: начальный адрес, селектор
ссылок и фильтры там ваши.
