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)



  • 相关阅读:
    用新版本的job打成jar包在终端运行mapreduce程序遇到的问题 找不到Map class?
    在map端使用关联数组实现wordcount
    基数排序c++实现
    (sql补充)关于锁
    (sql server补充)关于事务
    (sql补充)关于游标
    java api文档的阅读技巧
    android开发学习路线图
    (sql补充)关于索引
    Android开发之学习路线
  • 原文地址:https://www.cnblogs.com/qinxiaoqin/p/7170875.html
Copyright © 2011-2022 走看看