みんなのちからになりたい

コピペでブログラムつくっていきたい

Seleniumでスクレイピングする

はるかむかしNokogiri使ったことあるんだけど、いまもだけどXPathをいまいち理解できてなかったためうまく使えなかったので、これみたら使いやすそうなのでやってみる。
とりあえず今回はwindowsで動かしてみる。
http://qiita.com/items/9cb81d7a98150ff22f53

FirefoxとかOperaとかいろいろ使えるみたいだけど今回はChromeでやってみた。
http://docs.seleniumhq.org/docs/03_webdriver.jsp#chrome-driver
使うにはドライバが必要で、パスの通ってるところに入れるかdriver_pathで設定すればOK。今回はめんどいのでrubyの入ってるフォルダに入れた。
http://code.google.com/p/chromedriver/downloads/list

あとは使うだけ。

#!/usr/bin/env ruby
require "bundler/setup"
require "selenium-webdriver"

driver = Selenium::WebDriver.for :chrome
# driver.visible = false
driver.get "http://ja.wikipedia.org/wiki/Excel"
p title: driver.title
element = driver.find_element(:tag_name, "html")
element = element.find_element(:tag_name, "title")
p element: element.text
elements = driver.find_elements(:tag_name, "html")
elements = elements[0].find_elements(:tag_name, "title")
p elements: elements[0].text
driver.save_screenshot "filename.png"
driver.quit
{:title=>"Microsoft Excel - Wikipedia"}
{:element=>"Microsoft Excel - Wikipedia"}
{:elements=>"Microsoft Excel - Wikipedia"}

windowsだとvisibleが使えないっぽいのでブラウザが毎回立ち上がるのがだるいけどちゃんと動く。
自動操作もできたりSSも撮れたりするのでいろいろ遊べそう。