私は単純なスクリーンスクレイピングスクリプトを書いており、スクリプトの終わりには、activerecord挿入の準備として配列の配列を作成しようとしています。次のように私が達成しようとしている構造がある:私は、配列が空の配列bをプリントアウトしようとすると、配列の配列を作成するためのRubyスクリプト
配列Bは現在、10の素子アレイ
b = [[0,1,2,3,4,5,6,7,8,9],[0,1,2,3,4,5,6,7,8,9],[0,1,2,3,4,5,6,7,8,9]]
のシリーズを保持しています。私はまだ、ルビーとプログラミングについてはかなり新しく、配列bで値を取得し、スクリプト全体を改善する方法についてのフィードバックを感謝しています。スクリプトは次のとおりです。
require "rubygems"
require "celerity"
t = 0
r = 0
c = 0
a = Array.new(10)
b = Array.new
#initialize Browser
browser = Celerity::IE.new
#goto Login Page
browser.goto('http://www1.drf.com/drfLogin.do?type=membership')
#input UserId and Password
browser.text_field(:name, 'p_full_name').value = 'username'
browser.text_field(:name, 'p_password').value = 'password'
browser.button(:index, 2).click
#goto DRF Frontpage
browser.goto('http://www.drf.com/frontpage')
#goto DRF Entries
browser.goto('http://www1.drf.com/static/indexMenus/eindex.html')
#click the link to access the entries
browser.link(:text, '09').click
browser.tables.each do |table|
t = t + 1
browser.table(:index, t).rows.each do |row|
r = r + 1
browser.table(:index, t).row(:index, r).cells.each do |cell|
a << cell.text
end
b << a
a.clear
end
r = 0
end
puts b
browser.close
大量のスクリプトをポストするのではなく、 'browser'を扱う行を簡単に置き換えることができますので、[もっと小さく自己完結した例](http://sscce.org/)が生成されます。つまり、このサンプルはユーザー名とパスワードなしで実行可能ではなく、少なくともこの質問に関する限り、コードの少なくとも半分は無関係です。 – outis