今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

あらためてmechanizeの勉強をしよう

例えばnewsingからblogという文字列を含む記事を検索する場合。

require 'rubygems'
require 'mechanize'
require 'kconv'

agent = WWW::Mechanize.new
agent.user_agent_alias = 'Windows IE 6'
page = agent.get('http://newsing.jp/')
# 最初の検索フォームを探す
form = page.forms.first
# <input type="text" maxlength="50" value="" class="search" name="q" style="width:266px;">
# より、qという名前のinputフォームに&#39;blog&#39;と入力
form.q = &#39;blog&#39;
# 結果を取得して表示
results = agent.submit(form)
puts results.body.tosjis

例えばNEWSING★BOOSTERからpicker=teraで検索する場合。

require &#39;rubygems&#39;
require &#39;mechanize&#39;
require &#39;kconv&#39;

agent = WWW::Mechanize.new
agent.user_agent_alias = &#39;Windows IE 6&#39;
page = agent.get(&#39;http://snow.lomo.jp/newsing/&#39;)
# 最初の検索フォームを探す
form = page.forms.first
# <input name="picker" value="">
# より、pickerという名前のinputフォームに&#39;tera&#39;と入力
form.picker = &#39;tera&#39;
# 結果を取得して表示
results = agent.submit(form)
puts results.body.tosjis

ちなみに検索フォームに名前が付いている場合、

search_form = page.forms.with.name(&#39;search&#39;).first

というふうに、ダイレクトで指定してもよい。
まぁページ内に1つしかフォームがなければ無意味だけど。

…でこの先、mixiに自動ログインして情報取得( ̄ー ̄)ニヤリッとかやってもいいんだけど、ここまできてmechanizeが今俺に必要なものじゃないかも、と思って勉強中断(←自分勝手)。とりあえずmechanize周りで役立ちそうなページメモして終了。

Route 477(2007-02-05)
超手抜き版 はてなダイアリーライター(ruby版)を作ってみた。 - 生活。
バツイチからの婚活 | Just another WordPress site
Route 477