如何在ruby nokogiri中的两个div之间获取文本?

时间:2017-01-17 15:31:20

标签: ruby loops xpath nokogiri

我想解析两个horizo​​ntal_lines之间的文本。

它应该是该水平线的第一个和第二个之间的文本。

我想使用ruby gem' nokogiri',不一定使用xpath。

url = "http://calendar.rop.ru/?idd=167"
page = Nokogiri::HTML(open(url), nil, 'utf-8' )

我(失败)尝试:

我想到了一个迭代来找到div中第二行的第一个蚂蚁,id =" block777"

i=2 # because from then on the 1.st line starts 
until /src=\"img\/line.gif\"/ =~ extract 
i += 1; extract = page.xpath('//div[@id="block777"]/div[position()='+i.to_s+']').inner_html` 
puts extract

更多方面:

<div style="border:0px solid silver; width:100%; height:10px; margin:2px;"><img src="img/line.gif" style="width:100%; height:1px; margin-top:4px;"></div>

  • 我想浏览一下页面然后获取内容,直到我到达下一个horizo​​ntal_line。

1 个答案:

答案 0 :(得分:1)

试试这个

between = doc.at('#block777').children
    .drop_while { |each| each.to_s !~ /line.gif/ }
    .drop(1) 
    .take_while { |each| each.to_s !~ /line.gif/ }

这会跳过子项,直到找到第一行,然后跳过该行,然后获取所有子项,直到找到另一行。