Вы можете получить весь текст из node.text
, и это все, что вам нужно, чтобы пойти с Нокогири. Оттуда вы можете использовать scan
, чтобы найти числа и биты списков (flatten
и map
), и все готово , Примерно так:
first, second = node.text.scan(/(\d+(?:\.\d+))/).flatten.map(&:to_f)
Это должно оставить вас с 35,0 в first
и 42.0
в second
. Если вы знаете, что числа - это цены с десятичными знаками, вы можете немного упростить регулярное выражение:
first, second = node.text.scan(/(\d+\.\d+)/).flatten.map(&:to_f)