2008-12-16
■ [mechanize]2009年Apple StoreのLucky Bag(福袋)の入荷有無を判定するスクリプト

require 'mechanize' require 'kconv' url = 'http://store.apple.com/jp/browse/home/specialdeals/luckybag' agent = WWW::Mechanize.new page = agent.get(url) while /在庫切れ/ =~ page.body.tosjis puts Time.now.to_s + " 在庫切れです" sleep 60 agent = WWW::Mechanize.new page = agent.get(url) end puts "入荷しました!" exit
ちなみにこのスクリプトには致命的な欠陥があり、このままコピペしても正しく判定がされないようになっている。どこが間違いかは親切なブックマーカーが指摘してくれるかもしれない。
プログラミング初心者のid:takerunba氏もボットを作ったらしいが、ちょっとプログラムの知識があればPCの前に張り付いてブラウザの更新ボタン連打せずともAppleの福袋を買えたりするわけだ。元々のIT知識レベルにもよるが、はてな記法を使ってはてダをかけるくらい(世間から見ると)レベルが高い人となら、こんなプログラムは小説1冊読み終わるくらいの時間で書けると思う。
教えて下さい><
○ while /<span class="customer_commit_display">在庫切れ<\/span>/ =~ page.body.tosjis
です。Apple福袋のページには在庫表示の箇所以外に「在庫切れ」という文字列が常に含まれているので、修正前のスクリプトではいつまでたっても「在庫切れ」判定となります。
ちなみにApple福袋は購入可能になってから30秒~40秒で即在庫切れらしいので、このスクリプトを動かしてメールでアラートを投げたとしても間に合わないかもしれません。そういう意味では、在庫復活する時間帯を予測して(ランダムではないらしい)その間F5連打するのが確実かもしれません。スクリプトで検知して見に行ったら売れきれは切ないので。
やっぱり其処が違ってたんですね
「tosjis」が怪しいと思って(ストアのソースに無かったので)外したり
「>在庫切れ<」って入れてみたり色々やってました
> 30秒~40秒で即在庫切れ
かなり厳しい戦いですね
在庫が有った時にパッと音を出せないのかな?と思って検索を掛けたらhttp://www12.atwiki.jp/0141029/pages/304.html内に
print "\x07"
と言うのが有りました
原理は解りませんが試してみたら見事に音が鳴ったので私はこれでやってみようと思います
1日中PCに張り付いて居なければいけないのが難点ですが(笑)
残念です。。。が、カートに入れるボタンの見えるページが載っていたのは収穫です
ボタンの見えるページを基に構文とキーワードを換えてみました
どうでしょうか?採点お願いします><
until /1月2日にお届け/ =~ page.body.tosjis
puts Time.now.to_s + " 在庫切れです"
sleep 60
agent = WWW::Mechanize.new
page = agent.get(url)
end
ちなみに僕はこのスクリプトを作って満足しただけで、実際に福袋争奪戦には参加してません。。。Apple製品もiPodも持ってないので…。
別の方法を考えなければ買えそうに無いですね
プログラムを組むのは難しいです