Python:基于Python爬虫技术的抢票程序及其实现

Python014

Python:基于Python爬虫技术的抢票程序及其实现,第1张

临近放假,相信我们每天都在群聊里或者朋友圈看到一些帮忙抢火车票的信息。看到朋友们抢回家的车票这么辛( bei )苦( can ),结合圈里一些前辈的指点,抱着学习的心态用 Python 做了一个简单的自动化抢票程序抢到票之后通过绑定的邮箱(比如 QQ )发通知。下面分享主要内容:

然后,开始使劲地码:

1. 定义自动购票的类(初始化属性)

2. 实现登录功能

3. 实现购票功能

4. 邮箱通知付款

还有,网络不好或者 12306 的服务器不稳定的时候,就会卡住,针对这种情况,系统会重复查询:

最后,祝大家都能顺利抢到票.

本文以转载于博客园小帝君的博客

所谓抢票实际上是在开始放票的一瞬间第一个发出请求并点击预订。作为程序员的我们,完全可以让程序来做这件事。我花了几个小时写了一个demo。用到的工具集有:Python3.6, Selenium, chromdriver. 程序本身就是流程性的东西,没有什么可介绍的。代码如下

#

coding=utf-8

from

selenium import

webdriver

from

time import

sleep

import

traceback

TICKET_URI

= '

https://kyfw.12306.cn/otn/leftTicket/init

'

LOGIN_URI

= '

https://kyfw.12306.cn/otn/login/init

'

MY_URI

= '

https://kyfw.12306.cn/otn/index/initMy12306

'

LOGIN

= u'

登录

'

from

splinter.browser import

Browser

from

time import

sleep

import

traceback

TICKET_URI

= '

https://kyfw.12306.cn/otn/leftTicket/init

'

LOGIN_URI

= '

https://kyfw.12306.cn/otn/login/init

'

MY_URI

= '

https://kyfw.12306.cn/otn/index/initMy12306

'

LOGIN

= '

login_user

'

def

login():

brw.find_element_by_id(LOGIN).click()

sleep(

3)

uname

= '123456789

@qq.com

'

pwd

= 'xxxyyyzzz

'

brw.find_element_by_id(

'

username

'

).send_keys(uname)

sleep(

1)

brw.find_

这个真可以的,C++和java能编写的bython也可以编写,但是你编写的软件能不能抢的过那些买票软件就需要你的服务器运营和编写能力了。以前见过一个叫分流抢票的软件,是一个大神自己编写的,有兴趣可以自己查查看看。他的AI识别做得很好,目前那些乱七八糟的验证码需要AI自动识别。