4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ザ・インタビューズをテキストに変換するRubyスクリプト

Posted at

#やりたいこと
ザ・インタビューズをダウンロードする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からテキストに変換することもできますね。

#参考

4
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?