本文实现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