えー、車輪の再発明しまくりのような気がする今日このごろです。
っというわけで、pc watch の html (ローカル)からタイトルとリンクと詳細をひっこぬいてみるテスト。もっと短くなりそうだけど、ってか今いろいろ思いついたけど、あとで直そう。ちとバグもあったり。
# 保存してあるファイル名filename = "pcw.html"# 相対パスだった時につけるurlbaseurl = "http://pc.watch.impress.co.jp/"str = ''# 読み込みopen( filename, 'r' ) { |io| io.each { |line| str += line.chomp! }}news_item_begin = "<!-- 一記事開始 -->"news_item_end = "<!-- 一記事終了 -->"news_td_begin = "<TD width=¥"442¥">"news_td_end = "<¥/TD>"news_split = "<(a|A) (href|HREF)=¥"(.*?)¥">(.*?)<¥/(a|A)>(.*)"# 記事開始〜終了までをひっこぬくstr.scan( /#{news_item_begin}(.*?)#{news_item_end}/ ){ |matched| # テーブルから抜き出す /#{news_td_begin}(.*?)#{news_td_end}/ =‾ matched[0] line = $1.gsub( /<img.*?>/, '') # link, title, description の抽出 /#{news_split}/ =‾ line unless $3 == nil then link = $3 title = $4 # タグを消してスペースを一つにする description = $6.gsub( /<.*?>/, '').gsub( /¥s+/, ' ' ) unless /^http:¥/¥// =‾ link then link = baseurl + link end # とりあえず puts puts link puts title puts description puts "¥n" end}