splinter实现浏览器自动登录

(1)秒抢火车票,目前状态:未成功,需要后续调试

# -*- coding: utf-8 -*-
'''
Created on 2017年7月14日

@author: Administrator
'''

from splinter.browser import Browser
import time
#b=Browser('chrome')
url='https://kyfw.12306.cn/otn/leftTicket/init'
b=Browser('chrome')
b.visit(url)
b.find_by_text(u'登录').click()
b.fill('loginUserDTO.user_name','*******')
b.fill('userDTO.password','*****')
time.sleep(5)

#填出发地目的地
#用cookie填写相关信息,保持了登陆的状态
b.cookies.add({'leftTicketDTO.from_station_name':u'西安'})
b.cookies.add({'leftTicketDTO.to_station_name':u'北京'})
b.cookies.add({'leftTicketDTO.train_date':'2017-07-22'})

#加载查询
b.reload()
b.find_by_text(u'查询').click()
#预定
b.find_by_text(u'预定').click()
#选择乘客
b.find_by_text(u'****')[1].click()

 

(2)JB手机抢购

 

# -*- coding: utf-8 -*-
'''
Created on 2017��7��14��

@author: Administrator
'''
from splinter.browser import Browser
import time
#京东抢手机脚本

#登陆页
def login(b): #登陆京东
b.click_link_by_text(u'你好,请登录')
time.sleep(3)
b.find_by_text(u'账户登录').click()
b.fill('loginname','******')
b.fill('nloginpwd','********')
b.find_by_id('loginsubmit').click()
return b
b=Browser('chrome')
b.visit('http://item.jd.com/2707976.html')
login(b)

#订单页
def loop(b):
try:
if b.title=='订单结算页-京东商城':
b.find_by_text(u'保存收货人信息').click()
b.find_by_text(u'保存支付及配送方式').click()
b.find_by_text('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) #调用login函数
b.find_by_id('choose-btn-qiang').click() #找到抢购按钮,点击
time.sleep(10)

while True:
loop(b)
if b.is_element_present_by_id('tryBtn'):#订单提交后显示“再次抢购”的话
b.find_by_id('tryBtn').click() #点击再次抢购,进入读秒5,跳转订单页
time.sleep(5)
elif b.title=='订单结算页 -京东商城': #如果还在订单结算页
b.find_by_id('order-submit').click()
else:
print(u'恭喜你,抢购成功')
break

 (3)自动购买

 

# -*- coding: utf-8 -*-
'''
Created on 2017��7��14��

@author: Administrator
'''
from splinter.browser import Browser
import time
#京东抢手机脚本

#填写需要购买的地址
url='https://item.jd.com/1003988.html#none'
#登陆页
def login(b): #登陆京东
b.click_link_by_text(u'你好,请登录')
time.sleep(3)
b.find_by_text(u'账户登录').click()
b.fill('loginname','******')
b.fill('nloginpwd','*****')
b.find_by_id('loginsubmit').click()
return b

def subject(b):
try:
if b.title=='订单结算页 -京东商城':
b.find_by_text(u'家里').click()
b.find_by_text(u'在线支付').click()
b.find_by_text(u'京东快递').click()
b.find_by_id('order-submit').click()
else:
login(b)
except Exception as e:
b.reload()
time.sleep(2)
subject(b)
b=Browser('chrome')
b.visit(url)
login(b)
b.find_by_id('btn-onkeybuy').click()
subject(b)

 


 


 

posted @ 2017-07-14 16:01  程序猿-小秦  阅读(467)  评论(0编辑  收藏  举报