[#47173] 小数点以下を切り捨てる方法について — "T.Soejima" <clev@...2.so-net.ne.jp>

お世話になっております。そえじま@勉強中です。

16 messages 2010/06/23

[ruby-list:47138] 同じデータを引っ張ってしまう。

From: "T.Soejima" <clev@...2.so-net.ne.jp>
Date: 2010-06-07 01:42:40 UTC
List: ruby-list #47138
お世話になります。そえじま@勉強中です。

Amazonからデータを引っ張りながら、RubyとXMLなどについて
並行して勉強しています。

試しに下記のようなコードを書いてためしてみたのですが、ある程度
の量をDBに落としたところから、常に同じデータしか引っ張らなく
なってしまいます。

アルゴリズムを勘違いしてるのだと思うのですが、何かヒントをいた
だけないでしょうか?


def get_page(page=1)
res = Amazon::Ecs.item_search($key,{
:search_index=>$idx, :response_group=>'Medium', :sort=>'salesrank',
:item_page=>page})
off = Amazon::Ecs.item_search($key,{
:search_index=>$idx, :response_group=>'OfferSummary',
:sort=>'salesrank', :item_page=>page})
return res, off
end

db = SQLite3::Database.new( "bunko.db" )
sql = "insert into test ( id, title, amount, real_price, used_price )
values ( ?, ?, ?, ?, ? )"

for i in (1..$pages)
begin
res,off = get_page(i)
rescue => e
p e
retry
else
res.items.each{ |item|
$title = item.get('title')
$amount = item.get('amount')
}
off.items.each{ |item|
$r_price = item.get('lowestnewprice/amount')
$u_price = item.get('lowestusedprice/amount')
}
db.execute( sql, nil, $title, $amount, $r_price, $u_price )
end
end
db.close


retryを同じところで繰り返してるような気がするのですが、使い方が
間違っていますでしょうか?

ご教示いただけると助かります。よろしくお願いいたします。





In This Thread

Prev Next