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

rubyの初心者です。

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/02/02 13:42:05
  • 終了:2013/02/02 19:20:20

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4537ベストアンサー獲得回数18882013/02/02 16:29:26

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

id:osietekudasaibadr

ありがとうございます!おかげで思い通りに行きました!!

2013/02/02 19:20:52

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません