qiita.rb
page.at("//node[@class='class']")
.search(%(//*[text()="text"]))
みたいな文でスクレイピングしてたとき、どうしても参照範囲がおかしいのを検証して見つけたのが、基準が分からないけどatで指定した場所以外からもsearchする現象。
残念ながらgemを調べるほどの能力がないのでto_htmlしたものをnokogiriでパースした。
qiita.rb
node =page.at("//node[@class='class']").to_html
doc = Nokogiri::HTML(node)
doc.xpath('//*[text()="text"]').each do |link|
puts link.content
end
NokogiriではなくてMechanizeに渡してもいいだろうがNokogiri単体のほうが軽いし良いだろう。
もっといいやり方募集