本文實現12306搶火車票/京東搶手機示例,具體如下:
#12306秒搶Python代碼from splinter.browser import Browserx = Browser(driver_name="chrome")url = “https://kyfw.12306.cn/otn/leftTicket/init”x = Browser(driver_name="chrome")x.visit(url)#填寫登陸賬戶、密碼x.find_by_text(u"登錄").click()x.fill("loginUserDTO.user_name","your login name")x.fill("userDTO.password","your password")#填寫出發點目的地x.cookies.add({"_jc_save_fromStation":"%u4E0A%u6D77%2CSHH"})x.cookies.add({"_jc_save_fromDate":"2016-01-20"})x.cookies.add({u'_jc_save_toStation':'%u6C38%u5DDE%2CAOQ'})#加載查詢x.reload()x.find_by_text(u"查詢").click()#預定x.find_by_text(u"預訂")[1].click()#選擇乘客x.find_by_text(u"數據分析俠")[1].click()#-*- coding:utf-8 -*-#京東搶手機腳本from splinter.browser import Browserimport time#登錄頁def login(b): #登錄京東 b.click_link_by_text("你好,請登錄") time.sleep(3) b.fill("loginname","account*****") #填寫賬戶密碼 b.fill("nloginpwd","passport*****") b.find_by_id("loginsubmit").click() time.sleep(3) return b#訂單頁def loop(b): #循環點擊 try: if b.title=="訂單結算頁 -京東商城": b.find_by_text("保存收貨人信息").click() b.find_by_text("保存支付及配送方式").click() b.find_by_id("order-submit").click() return b else: #多次搶購操作后,有可能會被轉到京東首頁,所以要再打開手機主頁 b.visit("http://item.jd.com/2707976.html") b.find_by_id("choose-btn-qiang").click() time.sleep(10) loop(b) #遞歸操作 except Exception as e: #異常情況處理,以免中斷程序 b.reload() #重新刷新當前頁面,此頁面為訂單提交頁 time.sleep(2) loop(b) #重新調用自己b=Browser(driver_name="chrome") #打開瀏覽器b.visit("http://item.jd.com/2707976.html")login(b)b.find_by_id("choose-btn-qiang").click() #找到搶購按鈕,點擊time.sleep(10) #等待10secwhile True: loop(b) if b.is_element_present_by_id("tryBtn"): #訂單提交后顯示“再次搶購”的話 b.find_by_id("tryBtn").click() #點擊再次搶購,進入讀秒5,跳轉訂單頁 time.sleep(6.5) elif b.title=="訂單結算頁 -京東商城": #如果還在訂單結算頁 b.find_by_id("order-submit").click() else: print('恭喜你,搶購成功') break
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答