zoukankan      html  css  js  c++  java
  • 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)



  • 相关阅读:
    Java IO 5 : 对象序列化
    Java IO 4 : RandomAccessFile
    3 Linux平台安装jenkins
    AWS-EC2配置swap
    2.8 环境准备-静态资源服务器搭建
    2.7 环境准备-MongoDB
    2.6 环境准备-redis
    2.5 环境准备-zookeeper
    2.4 环境准备-mysql8
    2.3 环境准备-nexus
  • 原文地址:https://www.cnblogs.com/qinxiaoqin/p/7170875.html
Copyright © 2011-2022 走看看