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