google検索履歴って何かと便利なんだけど
エクスポートの機能がないからつまんない!!
というわけで自家製エクスポートスクリプト作りました
参考:
RubyでSeleniumを使ってスクレイピング - Qiita [キータ]
http://qiita.com/tomerun/items/9cb81d7a98150ff22f53
$ gem install selenium-webdriver
selenium-webdriverのインストールを忘れずに。
google_search_history_backuper.rb
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
driver.navigate.to 'http://history.google.com'
element = driver.find_element(:name, 'Email')
element.send_keys('user_name@gmail.com')
element = driver.find_element(:name, 'Passwd')
element.send_keys('********')
driver.find_element(:name, 'signIn').click
sleep(2) #ページの読み込みを待つために適度にsleep
div = driver.find_element(:name, 'edit').find_elements(:xpath, './div')
1.upto(div.length - 1){|i| p div[i].text }
driver.find_elements(:class, 'kd-buttonbar')[2].find_element(:xpath, './a').click
400.times{
sleep(2)
div = driver.find_element(:name, 'edit').find_elements(:xpath, './div')
1.upto(div.length - 1){|i| p div[i].text }
driver.find_elements(:class, 'kd-buttonbar')[2].find_elements(:xpath, './a')[1].click
}
もし途中で途切れた(一回目途中でログアウトしてた)ら、その中断したときのURLをコピーして
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
driver.navigate.to 'https://history.google.com/history/lookup?hl=ja&start=0&fts=1352396234719116<s=1352381671979288'
element = driver.find_element(:name, 'Email')
element.send_keys('user_name@gmail.com')
element = driver.find_element(:name, 'Passwd')
element.send_keys('********')
driver.find_element(:name, 'signIn').click
400.times{
sleep(2)
div = driver.find_element(:name, 'edit').find_elements(:xpath, './div')
1.upto(div.length - 1){|i| p div[i].text }
driver.find_elements(:class, 'kd-buttonbar')[2].find_elements(:xpath, './a')[1].click
}
にして再開。
URLがそのときの日付を指してるっぽい
課題
・途中でログアウトしてしまった時の再開を自動化したい
・フォーマット決められてないから、csvくらいに統一したい