人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

rubyのMechanizeでサイトの中にある”文字列”を検索するにはどうすればいいですか?
rubyの初心者です。

Mechanizeを使用しgetでURLの情報を取得しました。
そのページにあるある文字列を検索して、条件分岐で、あった場合の処理となかった場合の処理に分けたいのですが、文字列を探すにはどうすればいいのでしょうか?初歩的な質問かもしれませんが、よろしくお願います。

●質問者: osietekudasaibadr
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
ベストアンサー

Page::body が http の response body の String なので、そこから探すか、
タグや属性、コメントなんかは対象にしたくないということであれば、
Page::search で、対象の要素を列挙して、inner_text から文字列を探す、
という感じになると思います。

雰囲気だけですが、こんな感じ?

require 'mechanize'

url = 'http://ほげほげ/ふがふが'
re = /探したい文字列/

agent = Mechanize.new
page = agent.get(url)

# レスポンスそのものの中から探す
if page.body =~ re then
 # 見つかった!
end

# DIVタグの #text だけを対象に探す
page.search('DIV').each { |div|
 if div.inner_text =~ re then
 # 見つかった!
 end
}

一応、リファレンスも。
http://w.livedoor.jp/ruby_mechanize/d/Mechanize%3A%3APage#body
http://w.livedoor.jp/ruby_mechanize/d/Mechanize%3A%3APage#search

本家はこっちだけど、特別、詳しいとか見やすいというわけではない。
http://mechanize.rubyforge.org/Mechanize/File.html
http://mechanize.rubyforge.org/Mechanize/Page.html#method-i-search


osietekudasaibadrさんのコメント
ありがとうございます!おかげで思い通りに行きました!!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ