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

    @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
    Ответ написан
    Комментировать
  • Как с помощью Nokogiri добавить div блок в начало body?

    @tin_vsl
    Senior Developer
    можно сделать так
    # наш контент в Nokogiri::HTML
    nokogiri_html = Nokogiri::HTML(html_content)
    
    # код нового элемента
    new_element = '
    <div style="color: red">
      Text
    </div>
    '
    
    # добавление в начало body
    nokogiri_html.at("body").children.first.add_previous_sibling(new_element)
    
    # смотрим, что получилось
    puts nokogiri_html
    Ответ написан
    Комментировать