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

Как с помощью Nokogiri правильно получить весь контент в body и преобразовать его в текст?

<body>
  <p>Content</p>
   ...Content...
<body>


Так получаю весь контент в виде текста
new_content = nokogiri_content.at('body').children.text


Но пробельные символы остаються.
Правильнее ли так будет, если да то как убрать пробельные символы ?
  • Вопрос задан
  • 103 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
@tin_vsl
Senior Developer
Сокращать пробелы, увы, не входит в функции Nokogiri, можно убрать стартовые пробелы регуляркой
new_content.gsub(/^ +/, "")

Но в целом, это не совсем нормальный способ, так как в тексте вам будут сыпаться не только пробелы, но и контент, который обычно не обрабатывается как текст. Обработка html с помощью Nokogiri предполагает более прицельные действия, например извлечение необходимых тегов и текста из них:
require 'open-uri'
require 'nokogiri'

url = 'https://ru.wikipedia.org/wiki/Ruby'
doc = Nokogiri::HTML(open(url))

text = ''
doc.css('p,h1').each do |e|
  text << e.content
end

puts text
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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