Задать вопрос
hummingbird
@hummingbird

Как парсить HTML строку?

Есть такой HTML код:
<span class="title">Название:</span> Rising Water - James Vincent McMorrow<!-- После слитно еще несколько span -->


Пытаюсь ее парсануть:
puts /<span class="title">Название:<\/span>(.*)-(.*)/.match(line)


Но не выходит. Получаю название и последующие за ним span'ы.

Помогите, пожалуйста.
  • Вопрос задан
  • 375 просмотров
Подписаться 1 Оценить 11 комментариев
Решения вопроса 1
shurik_sh
@shurik_sh
Начинающий программист
Парсить регуляркой не стоит, выше упомянутое вполне подойдет, еще рубисты часто используют библиотеку nokogiri для парсинга сайтов.
Она вполне удобна, например тем, что можно добираться до элементов по ccs селекторам.
https://habrahabr.ru/post/52680/
Пример:
doc = Nokogiri::HTML('<body><span class="title">Название:</span> Rising Water - James Vincent McMorrow<span></span><body>')

name = doc.xpath('//span/following-sibling::text()[1]').text

p name # => " Rising Water - James Vincent McMorrow"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sharikov_d
@sharikov_d
Мне стыдно за ваши вопросы и ответы
HTML НЕ ПАРСЯТ РЕГУЛЯРКАМИ. REGEXP - ИНСТРУМЕНТ НЕДОСТАТОЧНО СЛОЖНЫЙ ДЛЯ ПАРСИНГА HTML.
d͓̀o̰̭̳̭̠̠͢n̠̞̠͉ț̱̤̝ ̣̣̼̫̥̯e̷̥̝v̦e̵̻n̰͕͟ ̵̗̻̪̯t̗̪̯̬͕̺́r͉̰̮̣̬͖y̶͕͍ ̝̩̟̬̟ţ̮o̶̰̭ ̵̣̥̬̯̜̟͓p̴͎̼̜a̝̖̦̫͈̱͖r̝͇̖̟͖̬s̭̭̯͉͎̙͘e҉̠̺̻̻̝ͅ ̣̺̤̱̣i͈̲̭̤͍̼͘t̞͉̺̲̘͚ ̺̞̰̳͔̭o̠̗͙̖̬͇u͠ț͉̘̦̝̪
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы