вторник, 20 мая 2014 г.

Парсим Blogspot: Создаем карту сайта.

По моему скромному мнению, способ размещения статей на Blogspot'e несколько неудобен - все статьи помещаются в архив и какие то их количество остается на главноей странице.
Гораздо удобней сделать отдельную страничку с оглавлением.


Руками это делать долго да и не интересно, по-этому автоматизируем процесс, как обычно на bash / сygwin.
Список статей присутствует в коде html и обрамлен тегами <li>, в принципе нам этого достаточно для того, чтобы создать карту блога:

#!/bin/bash

# Передаем скрипту в качестве параметра адрес блога.
# wget'ом получаем код страницы, игнорируем stderr с выводом работы самого wget 
# получаем все строки с тегами < li >,  упорядочим строки и возьмем только те, 
# в которых есть ссылки: 
list="$( wget -O - $1 2>/dev/null | grep -i "<li>" | sed 's/li>/li\>\n/g' | grep -i href )"

# Пришлось придумать свой велосипед, т.к каждая ссылка присутствует два раза и часто 
# усечена по длине.
# получаем уникальные ссылки
echo -e "$list" | awk -F"'" {'print $2'} | sort -r | uniq | while read line; do
# берем только первую строку
    echo -e "$list" | grep "$line" | head -1 | sed 's/$/<br>/g'
done 
На выходе мы получаем список ссылок блога, с переносами строк. Можно сразу перенаправить вывод в html и получить готовую страницу (без заголовков и тд)  

Если статья была вам полезна - кликните на баннер или кнопку Donate :)

Популярные сообщения