Видя из последующих комментариев, что вы действительно хотите искать текстовую часть всех ссылок, это определенно то, что можно сделать с помощью Nokogiri. Фактически это можно сделать с помощью одного выражения XPath!
urls = doc.xpath("//a[contains(text(), '#{search_term}')]/@href")
где search_term
содержит искомую строку.
Это можно изменить, чтобы сделать его нечувствительным к регистру. К сожалению, Nokogiri использует XPath 1.0, поэтому удобная функция XPath 2.0 lower-case()
недоступна. Существует обходной путь: использование translate()
.
upper = ("A".."Z").to_a.join
lower = ("a".."z").to_a.join
urls = doc.xpath("//a[contains(translate(.,'#{upper}','#{lower}'), '#{search_term.downcase}')]/@href")