鳩が鳴く

業務系男子からweb系男子になりました。覚えたことを書き殴るブログ

RubyでMechanize使うときに読む自分用メモ

不定期でMechanizeを扱うことがあるのでここにメモ。
このブログをクロール、スクレイピングするサンプル。

インスタンス起動

agent = Mechanize.new

UAを偽装

agent.user_agent_alias = 'Windows Chrome'

ページを取得

 page = agent.get("http://oxydol.hatenablog.com/")

ページ内のタグを取得する(div、li、aなど)

 page.search('div')
 page.search('li[class="urllist-item recent-entries-item"]')
 page.search('li.urllist-item')

応用

 page.search('li[class="urllist-item recent-entries-item"]').search('a')
 page.search('li[class="urllist-item recent-entries-item"]').search('a')[0]

タグの情報を取得する(hrefの中身とかタグの中の文字とか)

 page.search('h1').search('a').text
 page.search('h1').search('a').attr['href'].text

タグ取得と内容取得の組み合わせ

  links = page.search('li[class="urllist-item recent-entries-item"]').search('a')
    for link in links
     link_page = agent.get(link.attr['href'].text)
     sleep(1)
    end

まとめ

とりあえずこれだけわかればだいたいクロールできる
postとかするならfield_withとか、forms使うのかなー

あ、agent.get時にsleepいれるの忘れずに!