Hatena::Grouprubyist

たばさの RSSフィード

03/06(金) 2009

hpricot

| hpricot - たばさの を含むブックマーク はてなブックマーク - hpricot - たばさの

Hpricot(open(f))

これは閉じてくれるのかな。とりあえずテスト。

ruby1.8.6

irb(main):017:0> def test
irb(main):018:1>   f="test.rb"
irb(main):019:1>   a0=Time.now
irb(main):020:1>   10000.times{Hpricot(open(f)).search("title")}
irb(main):021:1>   a1=Time.now
irb(main):022:1>   10000.times{Hpricot(File.readlines(f)*"").search("title")}
irb(main):023:1>   a2=Time.now
irb(main):024:1>   puts "f:#{a1-a0}, hpr:#{a2-a1}"
irb(main):025:1> end
=> nil
irb(main):026:0> 5.times{test}
f:31.219, hpr:31.562
f:30.141, hpr:34.547
f:55.515, hpr:29.25
f:29.875, hpr:37.906
f:38.141, hpr:37.203
=> 5

しかし1.9.1ではgem install hpricotはできたが実行時エラー。

検索してwhy-hpricotというのがあるらしいがインストール時でエラー。


ということでhtmlのタイトルを表示する。

html_title.bat

@echo off
ruby -x "%~f0" %*
goto :EOF

#!ruby -Ks
#---------------ruby script starts here
require'nkf'
require 'optparse'
require 'hpricot'

opt = OptionParser.new
opt.on('-k val') {|v| $key=v}
opt.parse!(ARGV)


d=[]

def s da
  NKF::nkf('-s -m0',da.to_s )
end

def load file
  begin
    dat=Hpricot(open(file))
    title=dat.search("title").inner_text
    word="#{title} :#{file}"
    return if ($key && (not (word =~ /#{$key}/)))
    puts word 
  rescue Exception => e
    puts "#{e} [#{file}]"
  end
end

ARGV.each{|f|
  load f
}

#---------------ruby script ends here
__END__
:EOF
> html_title.bat *.htm*
タイトル :file.htm
タイトル2 :file2.htm

など。おそい。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20090306
カレンダー
<< 2009/03 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
archive Error : RSSが取得できませんでした。