Hatena::Groupkakisute

g5nの書き殴り

2007-11-15

pageinfo.rb - HTMLファイルのパス、タイトル、description、keywords をタブ区切りで

 pageinfo.rb - HTMLファイルのパス、タイトル、description、keywords をタブ区切りで - g5nの書き殴り を含むブックマーク はてなブックマーク -  pageinfo.rb - HTMLファイルのパス、タイトル、description、keywords をタブ区切りで - g5nの書き殴り

引数で指定したディレクトリ以下にあるHTMLファイルのパス、タイトル、description、keywords をタブ区切りで出力する。

MS Excel で開くことを想定。

#! ruby
require "rubygems"
require "hpricot"
require "nkf"

dir0, = ARGV
file = (Dir["#{dir0}/**/*.htm"]+Dir["#{dir0}/**/*.html"]+Dir["#{dir0}/**/*.php"]).sort
file.each_with_index{|fn,n|
  path = fn.sub(dir0+"/","")
  doc = Hpricot(File.read(fn))
  t0 = doc.search("title").first.inner_html.gsub(/[\t\r\n]/, "")
  tmp = doc.search("meta[@name=description]").first
  desc = tmp ? tmp.get_attribute("content").gsub(/[\t\r\n]/, " ") : ""
  tmp = doc.search("meta[@name=keywords]").first
  kw = tmp ? tmp.get_attribute("content").gsub(/[\t\r\n]/, " ") : ""
  puts [path, t0 || "", desc, kw].map{|i| NKF.nkf("-s", i)}.join("\t")
}