вторник, 25 декабря 2018 г.

Питонячая генерация sitemap для сайта

В общем тема старая - надо было нагенерить sitemap в XML формате для одного сайта... Дело было вечером, сайтик был зафигачен на одном популярном PHP фреймворке, да в котором генерация подобного рода файлов - вполне была не тривиальная задача (кода грудку написать и всё такое). А поскольку сайт вполне динамично менял у себя контент, то и генерить sitemap требовалось как можно почаще... Ну и вот я нашёл замечательную сборку скриптов (тискаем отсюда: https://github.com/c4software/python-sitemap ) для сего дела... Ща расскажу как пользоваться...





Погружаем скриптик этот на наш какой нибудь замечательный сервер, дабы у него был доступ к нему по http/https как всегда старым славным способом:

sudo -s
cd /opt && git clone https://github.com/c4software/python-sitemap && cd python-sitemap 

 Далее я нафигачу маленький скриптик для собственно генерации самих файлов:

gen.sh

#!/bin/bash
python3 main.py --domain https://mysupersite.com --output /var/www/html/sitemap.xml
python3 main.py --domain https://
mysupersite.com --output /var/www/html/sitemap-img.xml --images
chown www-data:www-data  /var/www/html/sitemap*

Собственно что он делает... Я решил что мне достаточно выдирать структуру сайтов (внутренних ссылок) и картинок на оном (сами линки к картинкам и всё что в тегах alt или title). Если надо что то большее, то есть замечательный README, почитав который можно прикрутить что то для своих нужд.

Собственно дальше я запихаю сей скрипт в крон (сайт не такой большой, так что обход его не будет длиться долго и мне достаточно его вызывать раз в сутки в полночь скажем). Для огромных сайтов - думаю этот процесс не совсем будет логичным и нормальным из-за необходимости частой индексации...


01 0 * * * cd /opt/python-sitemap && ./gen.sh


Остаётся только потом в поисковиках распихать генерированные sitemap файлы... За сим всё... Enjoy! ;)

P.S: может понадобится в систему доставить какие то зависимости для питона, но полагаю гугл в помощь...

Комментариев нет:

Отправить комментарий