代码之家  ›  专栏  ›  技术社区  ›  Fabián

通过h3含量nokogiri之间的<p>提取

  •  0
  • Fabián  · 技术社区  · 7 年前

    我只想提取 <p>

    require 'nokogiri'
    require 'open-uri'
    require 'time'
    
    @url = "http://www.caru.org.uy/web/servicios/llamados-a-concurso-publico-para-contratar-personal/"
    
    page = Nokogiri::HTML(open(@url))
    div_content = page.css('.contenido')
    
    div_content.each do |item|
    
       puts item.text
    
       break if  item.css('h3').text == "Finalizados"
    
    end
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   pguardiario    7 年前

    你应该能够做到:

    css = 'h3:contains(Vigentes) ~ p:has(~ h3:contains(Finalizados))'
    

    xpath = "//h3[contains(text(), 'Vigentes')]/following-sibling::p[./following-sibling::h3[contains(text(), 'Finalizados')]]"
    page.search(xpath).each do |p|
      # do something
    end