вторник, 1 ноября 2011 г.

Пример парсинга веб страницы на bash

Есть такой сайт интересный, http://fucking-great-advice.ru/ адрес у него. Ниже код на bash, который загружает главную страничку в /tmp/, парсит ее и выводит уведомление, содержащее совет.
#!/bin/bash
list=$(curl http://fucking-great-advice.ru -silent | grep '<p id="advice">' | iconv -f WINDOWS-1251 -t UTF-8 | sed -e 's/^[ \t]*//g' | sed -e 's/<p id="advice">//g' | sed -e 's/<\/p>//g' | sed -e 's/&nbsp;/ /g')
#echo $list #Выводим в консоль
notify-send "$list" "" -i gtk-about #Показываем уведомление
Напомню, все, что правее символа "#" - комментарий.

Теперь строку, в которой парсится страница разберем немного подробнее.

curl http://fucking-great-advice.ru -silent // Выводим в стандартный вывод содержимое страницы
grep '<p id="advice"> // Выбираем из него все строки с такой подстрокой (на странице она одна)
iconv -f WINDOWS-1251 -t UTF-8 // Преобразуем в "правильную" кодировку
sed -e 's/^[ \t]*//g' // Удаляем знаки табуляции в начале строки
sed -e 's/<p id="advice">//g' // Удаляем тег, обрамляющий совет слева
sed -e 's/<\/p>//g' // Удаляем тег, обрамляющий справа
sed -e 's/&nbsp;/ /g' // Меняем код неразрывного пробела на собственно пробел

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

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