本文實現12306搶火車票/京東搶手機示例,具體如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#12306秒搶Python代碼 from splinter.browser import Browser x = 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() |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#-*- coding:utf-8 -*- #京東搶手機腳本 from splinter.browser import Browser import 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 ) #等待10sec while 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 |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://blog.csdn.net/weixin_37947156/article/details/72930342