• python抢火车票的脚本


    因:

    想着那么多人,抢不到火车票。感觉到一丝感慨

    所以有了抢火车票这个脚本。

    0x01

    思路:自动打开浏览器,自动输入账号密码

    知道查看。自动预定。

    0x02

    要用到的模块

    splinter模块:
    pip install splinter
    chrome驱动:
    下载地址:http://chromedriver.storage.googleapis.com/index.html
    查看自己的版本点开设置->点开关于Google chrome
    版本对应:
    chromedriver版本	支持的Chrome版本
    v2.35	v62-64
    v2.34	v61-63
    v2.33	v60-62
    v2.32	v59-61
    v2.31	v58-60
    v2.30	v58-60
    v2.29	v56-58
    v2.28	v55-57
    v2.27	v54-56
    v2.26	v53-55
    v2.25	v53-55
    v2.24	v52-54
    v2.23	v51-53
    v2.22	v49-52
    v2.21	v46-50
    v2.20	v43-48
    v2.19	v43-47
    v2.18	v43-46
    v2.17	v42-43
    v2.13	v42-45
    v2.15	v40-43
    v2.14	v39-42
    v2.13	v38-41
    v2.12	v36-40
    v2.11	v36-40
    v2.10	v33-36
    v2.9	v31-34
    v2.8	v30-33
    v2.7	v30-33
    v2.6	v29-32
    v2.5	v29-32
    v2.4	v29-32
    

      

    将下载好的chrome驱动解随便解压到一个文件夹,然后添加进系统环境的path变量:

    0x03

    介绍splinter模块的用法

    http://www.jb51.net/article/75992.htm

    自己做的笔记:

    0x04

    代码分析

    from splinter.browser import Browser
    import time
    b=Browser(driver_name="chrome")
    b.visit("https://kyfw.12306.cn/otn/leftTicket/init")#浏览器打开12306的页面
    bsd=b.find_by_id("login_user")#选择login的id
    bsd.click()#点击
    b.fill("loginUserDTO.user_name","自己的12306账号")#填写自己的username
    b.fill("userDTO.password","自己12306的密码")#填写自己的password
    print('[!]手动确认验证码')#验证码自己选择
    time.sleep(10)#选择好验证码之后的10秒
    b.find_by_id("loginSub").click()#自动点击登录按钮
    time.sleep(3)#登录后等待三秒
    b.visit("https://kyfw.12306.cn/otn/leftTicket/init")#打开12306的查询页面
    b.cookies.add({"_jc_save_fromStation":"%u5E7F%u5DDE%2CGZQ"})#设置好出发点 我选择的是广东
    b.cookies.add({"_jc_save_fromDate":"2018-1-23"})#日期
    b.cookies.add({u'_jc_save_toStation':"%u6B66%u6C49%2CWHN"})#目的地 我选择的是武汉
    b.cookies.all()
    b.reload()
    b.find_by_text(u"查询").click()#找到查询按钮并点击他
    b.find_by_text(u"预订")[1].click()#找到第二班车点击预定按钮
    time.sleep(5)#进去后等待5秒,勾选好乘坐人
    b.find_by_text(u"提交订单").click()#点击提交订单
    time.sleep(3)#等待3秒
    b.find_by_text(u"确认").click()#点击确认按钮
    

      常用的几个城市:

    cities= {'成都':'%u6210%u90FD%2CCDW',
    '重庆':'%u91CD%u5E86%2CCQW',
    '北京':'%u5317%u4EAC%2CBJP',
    '广州':'%u5E7F%u5DDE%2CGZQ',
    '杭州':'%u676D%u5DDE%2CHZH',
    '宜昌':'%u5B9C%u660C%2CYCN',
    '郑州':'%u90D1%u5DDE%2CZZF',
    '深圳':'%u6DF1%u5733%2CSZQ',
    '西安':'%u897F%u5B89%2CXAY',
    '大连':'%u5927%u8FDE%2CDLT',
    '武汉':'%u6B66%u6C49%2CWHN',
    '上海':'%u4E0A%u6D77%2CSHH',
    '南京':'%u5357%u4EAC%2CNJH',
    '合肥':'%u5408%u80A5%2CHFH'}
    
    要想知道更多请看文章: 作者:然学科技 链接:https://www.jianshu.com/p/a16b0b258c3b 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

      几个号的抢火车票文章:

    脚本之家:http://www.jb51.net/article/75992.htm
    简书:https://www.jianshu.com/p/a16b0b258c3b
    

      抢票运行视频:加入qpython群观看:540717901

          百度云视频:链接:https://pan.baidu.com/s/1smpRTOL 密码:gowj

  • 相关阅读:
    虚拟内存分页机制的页面置换
    wait函数的作用
    Kubernetes中Pod生命周期
    ufw 禁用端口未生效
    Kubernetes各个组件的概念
    Kubernetes存储卷的使用
    虚拟内存分页机制的地址映射
    GUNgettext 无效
    响应HTTP服务的shell脚本
    yaml语法
  • 原文地址:https://www.cnblogs.com/haq5201314/p/8325860.html
Copyright © 2020-2023  润新知