HTML取得&解析をするRubyスクリプト
簡単!たった13行のコードで HTML取得&解析をするPerlスクリプト
簡単!たった2行のコードで HTML取得&解析をするrubyスクリプト
なんか流行ってる?
ぼくもYahoo!Japanのトピックス一覧を取得するやつをRubyでやってみました。
使用ライブラリは標準添付のopen-uri と gemでインストールしたnokogiri
無理やり行数を削るとこんな感じか?・・・読み辛い。
test.rb
#!/usr/bin/env ruby %w(open-uri rubygems nokogiri).each{|lib| require lib } puts Nokogiri::HTML( open('http://www.yahoo.co.jp', 'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)').read ).css('#topicsfb li').map{|elm| elm.content}
実行結果
$ date 2010年 6月 7日 月曜日 23:57:15 JST $ ruby test.rb 農水相に山田副大臣昇格へ写真NEW 口蹄疫 運搬車が感染経路か 北 最高人民会議で首相が交代写真 飲料市場 水からゼロ炭酸へ写真 果皮からポリフェノール生産 楽天「内野5人」もサヨナラ負け写真 キンコン西野 本売れたら解散写真 うの別居報道 事務所離婚否定写真 今日の話題(61件) 一覧
上のtest.rbは可読性があんまりなんで、もう少し読みやすく書くとこんな感じ。
#!/usr/bin/env ruby # -*- coding:utf8 -*- require 'open-uri' require 'rubygems' require 'nokogiri' # urlを指定する url = 'http://www.yahoo.co.jp' # IE8のフリをする user_agent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)' doc = Nokogiri::HTML( open(url, 'User-Agent' => user_agent).read ) puts doc.css('#topicsfb li').map do |elm| elm.content end