利用Python代码自动抢火车票的原理以及代码解析

马哥Linux运维 2018-01-13 10:32 次阅读

今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool。

准备工具:

12306网站用户名和密码

Python 2.7

chrome浏览器及下载chromedriver

下载Python代码

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

了解原理:

找到相应URL,找到控件模拟登录、查询、订票操作。关键是找到控件名称,难点是起始地不是直接输入的页面值,需要在cookie中查出。

12306查询URL:

12306登录URL:

我的12306URL:

购票确认URL:

Python代码打开URL,找到控件填充值:

利用Python代码自动抢火车票的原理以及代码解析

找到用户名密码控件名

找到起始地控件名

确定起始地的值,方法Chrome浏览器中的“检查”功能(按F12),Network ---> Cookies中找到:

cookie中起始地的值

拷贝起始地的cookie值,我把几个常用的城市拷出来,放到了字典中:

查询车票代码:

其实,你只需要运行代码:

当然,还需要手动点一下的还是万恶的12306验证码,抢到票后确认支付就行啦。

抢票进行中

抢票成功!

马哥Linux运维 技术专区

原文标题:100行Python代码自动抢火车票!

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

教你用Python从0开始创建一个区块链

对数字货币的崛起感到新奇的我们,并且想知道其背后的技术——区块链是怎样实现的。本文通过 Python....

的头像 马哥Linux运维 发表于 04-20 06:55 206次阅读
教你用Python从0开始创建一个区块链

学习Python,你的同龄人或许已经抛弃你了!

最近有一篇文章 “摩拜单车创始人套现 15 亿:你的同龄人,正在抛弃你” 在朋友圈刷屏,一时引起众多....

的头像 人工智能头条 发表于 04-19 16:17 69次阅读
学习Python,你的同龄人或许已经抛弃你了!

重大改革Python将被加入高考科目

回想一下,微软创始人比尔·盖茨 13 岁学习编程,Facebook 创始人扎克伯格 11 岁开始学习....

的头像 山东省物联网协会 发表于 04-18 15:04 127次阅读
重大改革Python将被加入高考科目

19岁的高颜值程序员,教你如何像她一样自学编程

之前,我曾写过一篇名为《我是如何成为19岁的软件开发者》的文章,数百条留言都表示:我喜欢读你的文章,....

的头像 算法与数据结构 发表于 04-17 17:51 9465次阅读
19岁的高颜值程序员,教你如何像她一样自学编程

如何快速学会Python?利用Python进行数据分析

比如量级稍微大些的数据,Office的性能根本不能满足需求,而用 Python 可以轻松地处理、分析....

的头像 马哥Linux运维 发表于 04-17 16:00 176次阅读
如何快速学会Python?利用Python进行数据分析

Python在音频(Audio)领域中,如何进行数据扩充呢?

经典的深度学习网络AlexNet使用数据扩充(Data Augmentation)的方式扩大数据集,....

的头像 机器学习算法与人工智能 发表于 04-15 10:35 657次阅读
Python在音频(Audio)领域中,如何进行数据扩充呢?

如何使用用Python来自动生成表情包

表情包不仅仅是一种符号,更是一种文化;是促进社交乃至社会发展的动力之一,就像懒。

的头像 马哥Linux运维 发表于 04-14 09:36 351次阅读
如何使用用Python来自动生成表情包

python和别的语言比所具备的优势

发表于 04-13 14:57 193次阅读
python和别的语言比所具备的优势

Pipeline改造过程中的几点主要经验分享

虽然说一般要求将Jenkinsfile与所在代码库的代码放在一起托管,即将Jenkinsfile置于....

的头像 中兴开发者社区 发表于 04-13 10:26 128次阅读
Pipeline改造过程中的几点主要经验分享

关于Nodejs中最关键也是最难的异步编程做一些介绍和讲解

人们对于新事物的快速理解一般基于此新事物与生活中某种事物或者规律的的相似性,但这个promise并没....

的头像 中兴开发者社区 发表于 04-13 10:17 136次阅读
关于Nodejs中最关键也是最难的异步编程做一些介绍和讲解

使用Python语言快速实现一个网站或Web服务

在 Flask 中获取请求参数需要使用request等几个全局对象,但是这几个全局对象比较特殊,它们....

的头像 马哥Linux运维 发表于 04-12 11:08 367次阅读
使用Python语言快速实现一个网站或Web服务

王垠的40行代码是什么_王垠40行代码专家解读

王垠[yín],四川大学97级本科毕业,保送到清华大学计算机系直博。期间曾在清华大学计算机系软件工程....

的头像 汽车玩家 发表于 04-11 18:01 195次阅读
王垠的40行代码是什么_王垠40行代码专家解读

文本数据预处理的方法

我们应该意识到,许多策略不只是针对句子分割,而是针对分割的边界确定之后应该做什么。例如,我们可能会采....

的头像 论智 发表于 04-11 16:44 342次阅读
文本数据预处理的方法

DevOps案例旨在帮助用户在实践中更好的运用DevOps

基于此种情况,我们提出的一种模式是,MergeCI由代码审查人员在Gerrit上打出+2分来触发,只....

的头像 中兴开发者社区 发表于 04-11 09:31 85次阅读
DevOps案例旨在帮助用户在实践中更好的运用DevOps

结合代码实例带你上手python数据挖掘和机器学习技术

什么是数据挖掘?数据挖掘指的是对现有的一些数据进行相应的处理和分析,最终得到数据与数据之间深层次关系....

的头像 马哥Linux运维 发表于 04-10 16:50 359次阅读
结合代码实例带你上手python数据挖掘和机器学习技术

Python常用自增运算写法

发表于 04-09 17:45 141次阅读
Python常用自增运算写法

实现图像到文字的转换过程

官方提供了10万张图片,我们可以直接使用官方数据进行训练,也可以通过Captcha,参照官方训练集,....

的头像 人工智能爱好者社区 发表于 04-04 08:51 1386次阅读
实现图像到文字的转换过程

PLC代码利用相关研究,PLC代码缺陷分类

PLC编程中的计时器可通过设置预设时间触发计时器。定时器完成位元件的不正确放置可能导致涉及定时器完成....

的头像 工控云学堂 发表于 04-03 16:35 574次阅读
PLC代码利用相关研究,PLC代码缺陷分类

学习Python的发展方向

Python 的学习,知识涵盖极为广泛,对不同应用目标的学习,进阶的路线有很大的差异,以下分别介绍常....

的头像 半导体行业观察 发表于 04-02 15:43 680次阅读
学习Python的发展方向

了解这5种开发AI的最佳语言

在AI开发中使用Lisp语言,是因为它的灵活性使快速建模和实验成为可能,这反过来又促进了Lisp在A....

的头像 机器学习算法与人工智能 发表于 03-31 11:07 890次阅读
了解这5种开发AI的最佳语言

Python爬虫:寻找并分析百度云的转存api

所以,需要我们另外填写的参数为:shareid、from、bdstoken、filelist 和 p....

的头像 马哥Linux运维 发表于 03-31 09:18 551次阅读
Python爬虫:寻找并分析百度云的转存api

Python语言在数据分析、挖掘场景中常用特性

提供真正的数组,相比Python内置列表来说速度更快,NumPy也是Scipy、Matplotlib....

的头像 马哥Linux运维 发表于 03-31 09:16 572次阅读
Python语言在数据分析、挖掘场景中常用特性

如何将智能家居系统与Tableau仪表板集成在一起

首先她下载并安装了 Phue 到 Tableau - Python - Server(又称为 Tab....

的头像 Tableau社区 发表于 03-30 10:55 334次阅读
如何将智能家居系统与Tableau仪表板集成在一起

烂代码你能忍吗?优秀的代码VS糟糕的代码

糟糕的代码原来那么不堪一击。

的头像 C语言编程设计 发表于 03-30 10:09 178次阅读
烂代码你能忍吗?优秀的代码VS糟糕的代码

基于Devops的会议电视X项目端到端案例

自从项目引入敏捷后,工具链在我们项目的核心业务上起到至关重要的作用。wiki作为内容管理贯穿整个项目....

的头像 中兴开发者社区 发表于 03-30 09:33 238次阅读
基于Devops的会议电视X项目端到端案例

怎么免费看VIP视频呢?用Python爬虫攻破VIP视频防线

我们看到,第二条GET请求地址变了,并且在返回的信息中,我们看到,这个网页执行了一个POST请求。P....

的头像 马哥Linux运维 发表于 03-29 15:36 481次阅读
怎么免费看VIP视频呢?用Python爬虫攻破VIP视频防线

如何写一个简短的Python脚本做一个换脸程序

此函数试图改变 im2 的颜色来适配 im1。它通过用 im2 除以 im2 的高斯模糊值,然后乘以....

的头像 马哥Linux运维 发表于 03-29 15:32 186次阅读
如何写一个简短的Python脚本做一个换脸程序

用不到50行的 Python 2.x代码实现一个简单的区块链

现在我们可以创建创世区块了,我们需要一个函数来生成该区块链中的后继区块。该函数将获取链中的前一个区块....

的头像 阿铭linux 发表于 03-29 15:29 493次阅读
用不到50行的 Python 2.x代码实现一个简单的区块链

如何轻松使用Python写出漂亮的命令行程序

诞生之初用来作为配置管理语言的Python,现在已经成为最流行的编程语言之一,尤其是随着AI应用的兴....

的头像 电子发烧友网工程师 发表于 03-28 09:28 381次阅读
如何轻松使用Python写出漂亮的命令行程序

优秀的Python工程师养成记

发表于 03-27 16:06 281次阅读
优秀的Python工程师养成记

日志分析在web系统中故障排查、性能分析方面有着非常重要的作用

uri指请求中不包含参数的部分; request_uri指原始的请求,包含参数或者无参数; args....

的头像 马哥Linux运维 发表于 03-27 15:48 449次阅读
日志分析在web系统中故障排查、性能分析方面有着非常重要的作用

Python机器学习常用库

发表于 03-26 16:29 411次阅读
Python机器学习常用库

字符串函数strlen的深入研究

本系列是为了剖析crt库中intel模块下的那些函数的,那么我们去找找那里面有没有strlen的实现....

的头像 C语言专家集中营 发表于 03-26 16:01 310次阅读
字符串函数strlen的深入研究

一种可以优雅编程的语言Python知识点汇总

另一个原因是我们可以将 Python 用在很多地方:数据科学、Web 开发和机器学习等都可以使用 P....

的头像 马哥Linux运维 发表于 03-26 15:58 231次阅读
一种可以优雅编程的语言Python知识点汇总

实践中我们将展示我们的三种代码分支策略

Scan Multibranch Pipeline Now 第一次生成Multibranch Pip....

的头像 电子发烧友网工程师 发表于 03-24 09:52 642次阅读
实践中我们将展示我们的三种代码分支策略

Python自然语言用金庸的武侠小说做分析和处理

作者用Jieba + Word2vec + NetworkX 结合在一起,做了一次自然语言分析,语料....

的头像 马哥Linux运维 发表于 03-23 16:01 435次阅读
Python自然语言用金庸的武侠小说做分析和处理

scala和python的优缺点_scala和python对比分析哪个好?

Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向....

的头像 陈翠 发表于 03-23 13:59 515次阅读
scala和python的优缺点_scala和python对比分析哪个好?

如何减少嵌入C语言代码空间大小

发表于 03-23 10:46 145次阅读
如何减少嵌入C语言代码空间大小

想要WIFI破解,python+字典,这是是少不了的

目前常见的Wi-Fi加密方式有WEP、WPA2和WPS(链接为各自的破解方式),不过有网友反映以往破....

的头像 马哥Linux运维 发表于 03-21 16:22 902次阅读
想要WIFI破解,python+字典,这是是少不了的

Python 爬取CSDN的极客头条

Python 如何爬取CSDN的极客头条呢?

的头像 马哥Linux运维 发表于 03-21 14:58 244次阅读
Python 爬取CSDN的极客头条

Python缓存神奇库cacheout全解

后端使用字典进行缓存,使用缓存管理轻松访问多个缓存对象,当使用模块级缓存对象,重构运行时的缓存设置.....

的头像 马哥Linux运维 发表于 03-21 14:53 339次阅读
Python缓存神奇库cacheout全解

你用Python写过哪些牛逼的程序/脚本?

我个人超级喜欢 Matthew Inman 的漫画。它们在疯狂搞笑的同时,却又发人深省。但是,我很厌....

的头像 马哥Linux运维 发表于 03-20 14:30 288次阅读
你用Python写过哪些牛逼的程序/脚本?

了解程序员晚上常用的编程语言

David 分析了 2016 年 8 月 4 周的数据。为什么选 8 月份,David 说是为了避开....

的头像 Linux爱好者 发表于 03-20 14:17 478次阅读
了解程序员晚上常用的编程语言

入门级别代码问题,跪求大佬帮助

发表于 03-20 12:42 277次阅读
入门级别代码问题,跪求大佬帮助

梯形图逻辑和PLC扫描、BCD代码以及可复用代码3个方面详述PLC编程的小技巧

BCD码是一种十进制数的二进制代码,其中每个数都用特定的位来表示,通常是4位或8位,这与人类计算的方....

的头像 工控云学堂 发表于 03-20 10:54 333次阅读
梯形图逻辑和PLC扫描、BCD代码以及可复用代码3个方面详述PLC编程的小技巧

bash和mysql的代码一个低成本、实用性能高的日志审计方案

上述每一个功能列表都是经过多次实践出来的需求,虽然不是非常完美,但是如果不是刻意来逃避日志记录的话,....

的头像 马哥Linux运维 发表于 03-19 16:43 476次阅读
bash和mysql的代码一个低成本、实用性能高的日志审计方案

Python自动化运维之协程函数赋值过程

协程的优点:(1)无需线程上下文切换的开销,协程避免了无意义的调度,由此可以提高性能(但也因此,程序....

的头像 马哥Linux运维 发表于 03-18 11:22 532次阅读
Python自动化运维之协程函数赋值过程

让Python输出更整洁:PrettyPrinter

PrettyPrinter是Python 3.6 及以上版本中的一个功能强大、支持语法高亮、描述性的....

的头像 马哥Linux运维 发表于 03-17 09:04 579次阅读
让Python输出更整洁:PrettyPrinter

Python 只需20行代码即可实现验证码识别

简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处....

的头像 马哥Linux运维 发表于 03-16 15:23 580次阅读
 Python 只需20行代码即可实现验证码识别

关于学习Python的三个阶段的介绍

Python的用途十分广泛,不同的程序员将其用于不用的领域,不同的程序员将自己的代码打包成库,供其他....

的头像 马哥Linux运维 发表于 03-16 15:15 450次阅读
关于学习Python的三个阶段的介绍

互联网公司Python的16道经典面试题

随着Python在企业中的应用越来越多,岗位需求越来越大,面试成为了搞定优质职位的快速方式,下面是笔....

的头像 马哥Linux运维 发表于 03-16 09:29 657次阅读
互联网公司Python的16道经典面试题

CRC校验代码看不懂,请求高手支招。目前我看不懂的一篇CRC校验文章和一套逆序CRC校验。

发表于 03-16 08:36 264次阅读
CRC校验代码看不懂,请求高手支招。目前我看不懂的一篇CRC校验文章和一套逆序CRC校验。

基于下面的代码 求大神改一个只用两位数码管显示 根据按键显示 01 02 -----一直到15

发表于 03-15 23:24 499次阅读
基于下面的代码  求大神改一个只用两位数码管显示  根据按键显示 01 02   -----一直到15

Python高性能计算库—Numba

发表于 03-14 15:24 272次阅读
Python高性能计算库—Numba

关于rs485的代码问题

发表于 03-14 14:20 201次阅读
关于rs485的代码问题

代码分析:九轴姿态传感器是无人机中必备重要器件。

SPI连接的是型号为BMI160的六轴加速度计和陀螺仪传感器。具体是如何通过寄存器的读取加速度值的我....

的头像 21ic电子网 发表于 03-12 11:29 782次阅读
代码分析:九轴姿态传感器是无人机中必备重要器件。

一文看懂python主要应用领域或应用场景

本文开始对Python的概念以及Python的特点进行了介绍,其次介绍了Python搭建开发环境与应....

的头像 电子魔法师 发表于 03-07 17:49 2134次阅读
一文看懂python主要应用领域或应用场景

用 Python 实现一个大数据搜索引擎

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用....

的头像 马哥Linux运维 发表于 03-06 17:26 628次阅读
用 Python 实现一个大数据搜索引擎