#やりたいこと
ザ・インタビューズをダウンロードするRubyスクリプトでダウンロードしたHTMLファイルを、ファイル名を整えてから、テキストに変換します。その最後のHTML→テキストの部分。
#方法
Nokogiriを使って質問と回答部分だけを抜き出します。
Nokogiriのインストール
$ gem install nokogiri
#コード
totext.rb
require 'nokogiri'
("000".."128").each do |num|
File.open("#{num}.html") do |file|
doc = Nokogiri::HTML(file)
doc.xpath('//div[@class = "title"]/h1 | //div[@class = "note"]').each do |node|
if node['class'] != 'note'
puts "\n# 質問\n"
else
puts "\n# 回答\n"
end
puts node.text.gsub(/\t/, "").squeeze("\n")
if node['class'] == 'note'
puts "\n---------------\n"
end
end
end
end
#結果
およそ以下のようになります。
# 質問
バッハのどのようなところがお好きですか?
# 回答
心が整っていくところ。
2013-11-11 06:46:52
---------------
# 質問
空を見て、雲が何かの形に見えたことはありますか? あれば、そのときの状況(時間、場所、気持ち、なにか行動をした後など)教えてください。
# 回答
雲の形に見えたことがあります。(冗談)
そういえば、あまりしげしげと雲見てないなあ。
2013-10-21 08:22:25
---------------
#メモ
- 上ではDOMを使ったけど、SAXを使う方が正しいような気がします。なぜなら、質問または回答を探しておいて、その後で質問かどうかをifで調べているからです。
- 上ではいったんファイルに落としたけれど、いきなりWebからテキストに変換することもできますね。
#参考