YYW'S BLOG

知识的分享就是知识的获得
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

京东自动抢购机

Posted on 2011-06-20 14:40  阿武  阅读(1050)  评论(0编辑  收藏  举报

京东抢购页面: http://qiang.360buy.com/LimitBuy.htm

有效时间:2011.6.1 - 2011.6.30 

开发语言:Ruby 

运行环境:Ruby 1.9.2 (需要安装 watir)

文件名:qiang.rb

运行命令:ruby qiang.rb 

说明:可以自动抢购商品,并自动进入购物车结算,结算过程可能会遇到需要验证码情况,结算将会失败,需要手动干预。 

 

require 'logger'
require 
'watir'

STDOUT.sync 
= true
log = Logger.new(STDOUT)
log.level = Logger::DEBUG

$host 
= 'qiang.360buy.com'

auto_goto_shopping_cart         
= true
    auto_goto_orderinfo         
= false # depends on the previous parameter
        auto_submit_order         
= false # depends on the previous parameter


url 
= "http://#{$host}/LimitBuy.htm"
ie 
= Watir::IE.new
ie.
goto url
error_times 
= 0
first 
= true
while true do
    
begin
        ie.refresh unless first
        ie.wait
        
        first 
= false
        error_times 
= 0
    rescue StandardError 
=> bang
        
log.error "Error: #{bang}"
        
        error_times 
+= 1
        
break if error_times > 10 
        
        redo
    
end    
    

    
begin
        li 
= ie.li(:xpath, "//li[@class='fore rob'][2]")
        
        unless li.
exists?
            
log.info 'Checking...'
            redo
        
end
        
        # OK, QIANG NOW

        target 
= li.links[1].href
        
log.info target
        
        
if auto_goto_orderinfo
            li.links
[1].click
        
else
            li.links
[1].click_no_wait
        
end

        
log.info '-> Going to the InitCart page...'        
        
        
log.info '########################################################################################'    
        
        
begin
            
            #ie2 
= Watir::IE.attach(:title, '商品已成功加入购物车'.encode!('gbk'))
            ie2 
= Watir::IE.attach(:url, target)
            
if ie2.nil?
                
log.warn 'ie2 is null.'
            
else
                
if auto_goto_shopping_cart
                    ie2.link(:id, 
'GotoShoppingCart').click 
                    
log.info '-> going to the shopping cart page...'
                    
                    
if auto_goto_orderinfo                        
                        ie3 
= Watir::IE.attach(:url, "http://jd2008.360buy.com/purchase/shoppingcart_pop.aspx?backurl=http://#{$host}/LimitBuy.htm")            
                        ie3.link(:id, 
'gotoOrderInfo').click
                        
log.info '-> going to the order confirm page...'
                        
                        
if auto_submit_order
                            ie4 
= Watir::IE.attach(:url, 'http://jd2008.360buy.com/purchase/orderinfo_pop_main.aspx')
                            
if ie4.image(:id, 'OrderCheckCodeImg').exists?
                                
log.info 'No way!!! need validation code to submit the order.'
                            
else                            
                                ie4.button(:id, 
'submit').click
                                
log.info 'Order is submited.'
                            
end
                        
end
                    
end
                
end
            
end
        rescue StandardError 
=> bang
            
log.error "Error: #{bang}"
        
end
        
        
log.info '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'
        
        
break
    rescue StandardError 
=> bang
        
log.error "Error: #{bang}"
    
end

end