2011-08-12 5 views
1

Rubyで簡単なニュースアグリゲータを構築しています。私はこの言語に全く触れておらず、open uri関数の使い方を知りました。シンプルなRubyスクリプトをオープンなURIで書く

私の問題は、htmlページを解析する方法です。 Rubyにパーサが組み込まれていますか?

ところで、私はレールを使用していないと私はそれが事前に

おかげで非常にシンプルになりたいです!

答えて

1

簡単な答えははいです。パーサーがあります。私はHTMLから抽出しようとしていることを知らずにあなたの質問に具体的に答えることはできませんが、私は以下にいくつかのソースコードを含めました。あなたがルビーコードを読むことができるなら、それはかなり自明です。 http://juretta.com/log/2006/08/13/ruby_net_http_and_open-uri/

:オープン-uriの使用方法の一例を示す別のリンクをここで

URI: http://www.ruby-lang.org/en/ 
Content-type: text/html, charset: utf-8 
Encoding: [] 
Last modified: 
Status: ["200", "OK"] 
{"date"=>"Mon, 15 Nov 2010 17:54:07 GMT", 
"server"=> 
"Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_ruby/1.2.6 Ruby/1.8.5(2006-08-25)", 
"transfer-encoding"=>"chunked", 
"content-type"=>"text/html;charset=utf-8"} 
---- 
0: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
1: "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
2: <html xmlns="http://www.w3.org/1999/xhtml"> 

です:

require 'open-uri' 
require 'pp' 
open('http://ruby-lang.org') do |f| 
puts "URI: #{f.base_uri}" 
puts "Content-type: #{f.content_type}, charset: #{f.charset}" 
puts "Encoding: #{f.content_encoding}" 
puts "Last modified: #{f.last_modified}" 
puts "Status: #{f.status.inspect}" 
pp f.meta 
puts "----" 
3.times {|i| puts "#{i}: #{f.gets}" } 
end 

を生成します

4

HTMLを解析するには、Nokogiriをお勧めします。特長:

  • 文書のXPathのサポートはscreen scraping with Nokogiriについての素晴らしいスクリーンキャストがあり
  • XML/HTMLビルダー

文書検索のための

  • CSS3セレクターのサポートを検索します。

  • 関連する問題