马上就要回家过年了,你的票买好了吗。

虽然我不用抢票,但是还是研究了一下怎么抢票。

程序员嘛,就是要对一切问题进行解构,探索原理本质,寻找规律,将其自动化。。。

好了,言归正传,开始。

1.首先,打开12306网。选个自己要买的路段,我这里是随便选的。

然后点击查询。

2.按下F12,设置如红色框。然后重新点击查询,看看浏览器都发送了什么给服务器。

从下图看,是发送了两条。

3.分别点击发送的两条,查看返回结果。可以看到第二条里面有当前网页车票相关的信息。比如“有”就是显示在网页上面的车票后面的有字,“大连”就是出发站信息。于是,我们知道车票信息是在这里面。实际这是个json格式的数据。

4.继续查看这条请求访问的链接。如下。

于是,我们可以用requests库来模拟浏览器访问。很简单,具体写作如下:

5.那么,如下图车票的有无信息是如何提取出来呢?

仔细观察发现,“有”“无”“-”信息是用“|”线来分割的。而且为了防止爬取,顺序是和网页显示不一样的。探究规律如下:

数字意思:软卧 23 意思是第23个字符内容对应的是软卧的有无票状态。

'''
无座 26
软卧 23
硬座 29
硬卧 28
特等商务座 32
一等座 31
二等座 30
'''

这里,我们选择硬座,如下编写:

和上面的程序结合,运行如下:

6.与网页对比,结果一致。D7411因为没有票,所以被程序剔除。

7.到这里,可以证明程序是可以获取车票状态的。那么怎么通知给我呢?

可以通过发邮件的方式。

8.但是邮件即时性不好,要是有票能自动打电话或者发短信就好了。

于是,找到了这样的服务。

“阿里大于”可以提供有偿的短息和语音服务。具体可以实现短信通知,或者电话通知,电话语音的内容是可以自己设置的。只要调用它给的api,然后把有票的列车信息作为参数传给它就可以了。当Python脚本检测到有票的时候,就会给阿里大于api发送哪些车有票等信息。阿里大于呢,会拨打我设置好的电话号码,通知我。这个电话是自动的,语音内容是将脚本传递给阿里大于的文本信息转为语言播放给电话前的我的。

这段没有实现,原理上是可行的。

程序员的我是如何抢票的(Python)相关推荐

  1. 如何查看本地的崩溃log_过年回家,还怕抢不到票?程序员教你如何抢票

    2019年接近尾声,距离春节回家的日子越来越近,26日起,2020年除夕火车票正式开售,抢票大战也进入白热化阶段.是否为某抢票 App 加速而烦恼,是否为车票"秒光而烦恼".别慌, ...

  2. 程序员,请不要抢系统管理员的饭碗

    程序员,请不要抢系统管理员的饭碗 作者:田逸(sery@163.com) 收到哥们一条短信,内容如下: 还有就是海淀分局发了函给我们,要求服务器维护方修复漏洞,并且提供后台漏洞文件,和漏洞***日志. ...

  3. 请不要叫我“程序员”,我是一名软件工程师--读《走出软件作坊》1

    周星驰有一句经典的台词:请不要叫我"跑龙套的",我是一名演员. 看了这本书,我突然也有了感悟:请不要叫我"程序员",我是一名软件工程师. 程序员只关心自己代码的 ...

  4. python开发pc软件_程序员带你十天快速入门Python,玩转电脑软件开发(二)

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  5. python做电脑软件-程序员带你十天快速入门Python,玩转电脑软件开发(二)

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  6. python入门教程软件-程序员带你十天快速入门Python,玩转电脑软件开发(四)

    本系列文章立志于从一个已经习得一门编程语言的基础之上,全面介绍Python的相关开发过程和相关经验总结.本篇文章主要是基于上一篇的程序员带你十天快速入门Python,玩转电脑软件开发(三)的基础之上, ...

  7. [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...

    [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Python学习] ...

  8. python在线编程免费课程-吐血整理!程序员最爱的13个免费Python课程

    原标题:吐血整理!程序员最爱的13个免费Python课程 图片来源:Jefferson Santos/Unsplash Python如今无疑是全球最受欢迎的编程语言.它最大的好处,就是让越来越多的人通 ...

  9. python什么工作好找女朋友_程序员,三分钟教你用 Python 帮你找一个女朋友

    原标题:程序员,三分钟教你用 Python 帮你找一个女朋友 什么是单身税? 单身税的历史可以追溯到2015年韩国的新政, 低生育率逼得韩国产生了这一政策. 现在我国也要实行这一政策, 很多单身狗就接 ...

  10. 从零学python黑马程序员_Python实战编程--从零学Python/Python应用编程丛书

    导语 内容提要 黑马程序员编著的<Python实战编程--从零学Python>涵盖了Python开发的核心知识.其中,第1-13章主要讲解的是Python的核心语法,包括基本概念和语句.风 ...

最新文章

  1. mysql数据库验证登陆不上_MySQL数据库连接不上、密码修改问题
  2. Windows搭建golang开发平台
  3. cross--向量或矩阵的叉乘
  4. 最长公共子序列LCS[C++题解]
  5. java实现频繁集_数据挖掘--频繁集测试--Apriori算法--java实现
  6. Saas经销商业务管理系统/部门管理/职位管理/员工管理/仓库管理/商品管理/客户管理/价格管理/入库管理/采购管理/销售管理/行为管理/axure高保真经销商业务后台管理系统原型/ssas后台管理
  7. python面向对象类的成员_Python面向对象中类的成员
  8. WINDOWS常用端口
  9. 8.6 edu25 ,577#div2 CF补题(二分 ,dp 与 贪心
  10. ARCGIS操作教程学习
  11. (学习笔记)地理加权回归
  12. 敏感词过滤算法Aho-Corasick
  13. linux网络操作系统项目教程课本,Linux网络操作系统项目式教程(CentOS7.6)-课后练习题.docx...
  14. 计算机二级C语言公共基础知识,以及习题总结(三)查找和排序
  15. 桌面应用程序软件开发语言_开发多语言软件应用程序的技巧
  16. [FirefoxOS_调试]Firefox OS调试开发系列视频教程
  17. python在数据分析方面的应用-数据分析应用方面Python和spss有什么区别?
  18. 项目需求管理-用户体验的五大层次
  19. java.sql.SQLException: Access denied for user 'pc'@'localhost' (using passw
  20. 怎么让input输入框最右侧一直默认有百分号

热门文章

  1. 彻底解决Tensorflow2.0 使用tensorflow_datasets出现unbalanced parenthesis错误
  2. MOOC单片机原理及应用题库大全
  3. 贝叶斯神经网络 BNN
  4. P3324 [SDOI2015]星际战争(洛谷刷题记录)
  5. Java项目:springboot超市进销存管理系统
  6. HDLC协议的基本概念和帧
  7. 帧率FPS,屏幕刷新频率赫兹Hz
  8. 2013年台式计算机型号,2013cpu天梯图,台式机处理器天梯图
  9. 函数6:lambda 表达式
  10. 什么是数字孪生技术?