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いれるの忘れずに!