Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Shell парсинг html  (Прочитано 5454 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FiTS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 11.10
    • Просмотр профиля
Shell парсинг html
« : 19 Октября 2010, 17:25:36 »
Дали задачку вывести нужный текст из html тегов стандартными утилитами. Подскажите чем лучше парсить html и чем его можно получить с сервера, кроме lynx. Похожей темы не нашёл.. Сильно не бить  :)

Оффлайн Scorry

  • Активист
  • *
  • Сообщений: 842
    • Просмотр профиля
Re: Shell парсинг html
« Ответ #1 : 19 Октября 2010, 17:41:16 »
чем его можно получить с сервера, кроме lynx.
wget, curl

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: Shell парсинг html
« Ответ #2 : 19 Октября 2010, 17:47:16 »
а чтоб парсить - coreutils, grep, sed, awk :)
Ubuntu, Gentoo, RHEL, AIX

Оффлайн FiTS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 11.10
    • Просмотр профиля
Re: Shell парсинг html
« Ответ #3 : 19 Октября 2010, 21:09:20 »
Спасибо. Хотелось бы всё же пример вывода строки между тегами хотя бы <a href...></a>
Буду очень признателен.

Пользователь решил продолжить мысль 19 Октября 2010, 21:20:12:
Дошло до самого  :)
Для grep будет так: cat file | grep "<a.*</a>"
Интересно узнать как на sed и awk :)
« Последнее редактирование: 19 Октября 2010, 21:21:08 от FiTS »

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 220
    • Просмотр профиля
Re: Shell парсинг html
« Ответ #4 : 19 Октября 2010, 21:21:18 »
lynx -dump https://forum.ubuntu.ru/index.php?topic=119230.0 | less
Я конечно далек от мысли...(с)

Оффлайн FiTS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 11.10
    • Просмотр профиля
Re: Shell парсинг html
« Ответ #5 : 19 Октября 2010, 22:49:00 »
Возник ещё такой вопрос. Как удалить все символы конца строки т.е. склеить все строки в файле? Заранее спасибо.

Пользователь решил продолжить мысль 19 Октября 2010, 23:05:37:
Или заменить его на пробел. Или лучше как заставить работать sed не построчно. Ато я этот html никогда не отпарсю. :o
« Последнее редактирование: 19 Октября 2010, 23:05:37 от FiTS »

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: Shell парсинг html
« Ответ #6 : 19 Октября 2010, 23:35:53 »
Скажи что конкретнее тебе надо?
В инете миллион мелких скриптов на том же sed, в том числе и для парсинга html.

Еще очень удобно выполнять команды sed-а непосредственно из vim.
Ubuntu, Gentoo, RHEL, AIX

Оффлайн FiTS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 11.10
    • Просмотр профиля
Re: Shell парсинг html
« Ответ #7 : 19 Октября 2010, 23:45:00 »
Надо выдернуть дату новости её название и текст без таблиц, списков и ссылок из блока:
(Нажмите, чтобы показать/скрыть)
Должно получиться что-то типа:

(Нажмите, чтобы показать/скрыть)

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 220
    • Просмотр профиля
Re: Shell парсинг html
« Ответ #8 : 20 Октября 2010, 02:21:50 »
чем люнкс не устраивает ?

tidy -utf8 -ashtml -language ru -wrap 0 txt.html | sed 's/</\n\</g;s/>/>\n/g' | grep -v '<.*>\|^$'
Я конечно далек от мысли...(с)

Оффлайн FiTS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 11.10
    • Просмотр профиля
Re: Shell парсинг html
« Ответ #9 : 20 Октября 2010, 07:01:12 »
чем люнкс не устраивает ?
Спасибо за решение. Не знал про разделители. Люнкса как и тайди там нет, как и прав рута у меня.

 

Страница сгенерирована за 0.02 секунд. Запросов: 22.