首页
学习
活动
专区
工具
TVP
发布

Python突破12306最后一道防线,实现自动抢票-附源码

一年一度的春运又来了,今年我自己写了个抢票脚本。使用Python+Splinter自动刷新抢票,可以成功抢到。(依赖自己的网络环境太厉害,还有机器的好坏)

Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互,Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL。然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可。

12306抢票Python代码片段

1、实现自动登录的函数:

2、开始购票的函数

全部完整代码:

# -*- coding: utf-8 -*-

"""

@author: liuyw

"""

from splinter.browser import Browser

from time import sleep

import traceback

import time, sys

class huoche(object):

"""docstring for huoche"""

driver_name=''

executable_path=''

#用户名,密码

passwd = u"xxxx"

# cookies值得自己去找, 下面两个分别是上海, 太原南

starts = u"%u4E0A%u6D77%2CSHH"

ends = u"%u592A%u539F%2CTYV"

# 时间格式2018-01-19

dtime = u"2018-01-19"

# 车次,选择第几趟,0则从上之下依次点击

order = 0

###乘客名

users = [u"xxx",u"xxx"]

##席位

xb = u"二等座"

pz=u"成人票"

"""网址"""

ticket_url = "https://kyfw.12306.cn/otn/leftTicket/init"

login_url = "https://kyfw.12306.cn/otn/login/init"

initmy_url = "https://kyfw.12306.cn/otn/index/initMy12306"

buy="https://kyfw.12306.cn/otn/confirmPassenger/initDc"

login_url='https://kyfw.12306.cn/otn/login/init'

def __init__(self):

self.driver_name='chrome'

self.executable_path='/usr/local/bin/chromedriver'

def login(self):

# sleep(1)

print u"等待验证码,自行输入..."

while True:

sleep(1)

else:

break

def start(self): self.driver=Browser(driver_name=self.driver_name,executable_path=self.executable_path)

self.login()

# sleep(1)

try:

print u"购票页面开始..."

# sleep(1)

# 加载查询信息

count=0

if self.order!=0:

count += 1

print u"循环点击查询... 第 %s 次" % count

# sleep(1)

try:

except Exception as e:

print e

print u"还没开始预订"

continue

else:

count += 1

print u"循环点击查询... 第 %s 次" % count

# sleep(0.8)

try:

i.click()

sleep(1)

except Exception as e:

print e

print u"还没开始预订 %s" %count

continue

print u"开始预订..."

# sleep(3)

sleep(1)

print u'开始选择用户...'

for user in self.users:

print u"提交订单..."

sleep(1)

# # sleep(1)

# sleep(1)

# print u"开始选座..."

sleep(1.5)

print u"确认选座..."

except Exception as e:

print e

if __name__ == '__main__':

huoche=huoche()

huoche.start()

Python学习交流qun:六三九五八四零一零

学完本篇文章,你有收获吗?有不懂的地方欢迎大家在留言下方给我留言。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119A0C4K900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券