html を処理している場合は、 nokogiriのような html/xml パーサーを使用して、 CSS セレクター<div>
を使用して必要なタグのテキスト コンテンツを引き出します。次に、テキストをフィールドに解析します。
nokogiri をインストールするには:
gem install nokogiri
次に、ページとテキストを処理します。
require "nokogiri"
require "open-uri"
# re matches: spaces (word) colon spaces (anything) space
re_fields = /\s+(?<field>\w+):\s+(?<data>.*?)\s/
# Somewhere to store the results
record = {}
page = Nokogiri::HTML( open("http://example.com/divtest.html") )
# Select the text from <div id=test> and scan into fields with the regex
page.css( "div#test" ).text.scan( re_fields ){ |field, data|
record[ field ] = data
}
p record
結果:
{"accno"=>"123232323", "id"=>"5443534534534", "name"=>"test_name", "url"=>"www.google.com"}
複数のpage.css( "blah" )
要素を処理している場合は、セレクターに配列としてアクセスすることもできます。.each
# Somewhere to store the results
records = []
# Select the text from <div id=test> and scan into fields with the regex
page.css( "div#test" ).each{ |div|
record = {}
div.text.scan( re_fields ){ |field, data|
record[field] = data
}
records.push record
}
p records