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

如何在ruby nokogiri中获取两个div之间的文本?,ruby,loops,xpath,nokogiri,Ruby,Loops,Xpath,Nokogiri,我想解析文本,即在两条水平线之间 它应该是这条水平线的第一条和第二条之间的文本 我想使用ruby gem'nokogiri',不一定要使用xpath url = "http://calendar.rop.ru/?idd=167" page = Nokogiri::HTML(open(url), nil, 'utf-8' ) 我的(失败)尝试: 我想到了一个迭代,用id=“block777”在div的第二行找到第一个ant 还有一些方面: 该网站的链接: 页面的有趣部分(我想得到)位于div中

我想解析文本,即在两条水平线之间

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

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

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

我想到了一个迭代,用id=“block777”在div的第二行找到第一个ant

还有一些方面:

  • 该网站的链接:

  • 页面的有趣部分(我想得到)位于
    div
    中,带有
    id=“block777”

  • 此html文本中有一条水平线:

  • 我想反复浏览页面,然后获取内容,直到到达下一条水平线
试试这个

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

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

请将文本作为文本而不是图像包含。如果文本太长,请找出所需的最小文本子集,并将其包括在内。请阅读“”和链接页面以及“”。除非问题是关于图形,否则图像对我们没有帮助。对于源代码和数据,我们需要演示问题的最少代码和最少数据,以及您所需的输出,所有这些都在问题中,而不是作为链接或图像。我们不能重复使用图像,也不能搜索图像,并且必须重新键入以图像形式显示的代码或数据,这浪费了我们的时间并延迟了对您的答复。而且,老实说,如果你使用图像,很多潜在的回答者甚至不会试图帮助你。@theTinMan,谢谢你的评论,好的,我将在我接下来的问题中尝试这样做!
between = doc.at('#block777').children
    .drop_while { |each| each.to_s !~ /line.gif/ }
    .drop(1) 
    .take_while { |each| each.to_s !~ /line.gif/ }