如何在红宝石中获取两个div之间的文本?



我想解析文本,即在两个horizontal_lines之间。

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

我想使用红宝石'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

更多方面:

  • 网站链接: Православный календарь 2016

  • 页面的有趣部分(我想得到)在divid="block777"

  • horizontal_line在此 HTML 文本中:

<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>

  • 我想遍历页面,然后获取内容,直到我到达下一个horizontal_line。

试试这个

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

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

相关内容

  • 没有找到相关文章

最新更新