iKnowの単語をごっそり持ってくるスクリプト

iPod touch用の単語帳を作ったのはいいんだが、TOEFL Reading Advancedを勉強しはじめてほとんど分からない、という自体に遭遇。csvファイルを手で書いていたが、面倒になったので、Rubyでcsv吐き出すスクレイピングのやつを書いた。

urlはコースの表示件数を全てにして何も入力しないで検索したときのurl。

require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'iconv'

url = "http://www.iknow.co.jp/course/749/items?search%5Btext%5D=&filter%5Bper_page%5D=500&filter%5Bpart_of_speech%5D=all&commit=%E3%81%93%E3%81%AE%E6%9D%A1%E4%BB%B6%E3%81%A7%E6%A4%9C%E7%B4%A2"

source = Hpricot(open(url).read)

english = []
japanese = []

(source/"a.item_link").each{ |item|
  english.push item.inner_text
}

(source/"td.response").each{ |item|
  japanese.push item.inner_text
}

(1..english.length).each{ |item|
  print "\""+english[item-1]+"\","
  print "\""+japanese[item-1]+"\""
  puts
}

これをファイルにリダイレクトしてやれば

"abrupt","突然の"
"adapt","適応する"
"adorn","装飾する"
"adverse","不利な"
"aesthetic","美的価値観の"
"align","揃える"
"alloy","合金"
"ammunition","弾薬"

こんなのができる。後は知ってる単語を消去して、この前の単語帳のやつで作成すれば万事OK。

こんな調子で単語帳を作っていたらあっという間にiPod touchの中に1000個ほどの英単語が生成されて、大変なことになったのは秘密である。調子に乗りすぎたか。。。