12306智能订票-智能订票助手

1 前言

节假日的时候,回家或者热门景点的火车票往往很快一售而空。除了拼人品、拼手速地蹲点守候,我们还可以用科学的方式智能订票。

2 项目简介

今天的主人公是GitHub上的12306项目[1]。项目的整体思路很直接,它会不断地查询心仪时间的车次是否有余票,有的话就会下单,锁定席位,并给用户发邮件提醒及时付款。

12306智能订票-智能订票助手

我们在两分钟打造淘宝抢单机器人这篇文章中也曾介绍过用webdriver来控制浏览器,实现查询、点击等行为。那么12306这一项目中的难点是什么呢?

我们发现,当用户查询次数太多时,12306会要求我们点击验证码。
12306智能订票-智能订票助手

作为真人来说这些图片的识别就颇为不易,那么程序如何能正确地识别出来呢?这里先卖个关子,我们稍后再说。

3 项目使用

项目的目录如图所示:

12306智能订票-智能订票助手

项目的使用比较简单,我们只需要更改根目录下的TickerConfig.py这一配置文件。我们需要填写出发日期,车次,出发到达城市,乘车人,你的邮箱(用来收发提醒邮件)。需要注意的是,你需要在12306账号中先把乘车人(可以不是你自己)加入。

另外,当你设置COOKIE_TYPE = 1时,项目会使用webdriver控制浏览器,打开12306官网,让用户登录。因此你需要下载适用于你的浏览器的driver,并把路径填写在配置文件中。我们比较推荐使用这种方式。

填写完毕后,我们只需要运行以下代码就可以启动抢票任务了。

python run.py r

我们首先需要在弹出的浏览器中登录12306账号,接着程序就会自动地查询余票了,运行时界面如下所示

12306智能订票-智能订票助手

当有人退票或者有新的火车票放出,有余票时,程序会自动下单,并给邮箱发送邮件,我们只需要及时付款即可。

4 如何识别验证码

如何有效地识别验证码是一个高难度的问题,项目采用了这个repo中的代码。

项目的整体设计思路是:借用百度提供的光学字符识别功能,用基于卷积网络的文字识别器,识别出要寻找的中文字符(在例子中即为电子秤和风铃)。接着训练出一个图片分类器,识别出图片是哪一类别的。用图片分类器的结果继续训练文字识别器,要识别的中文字符一定在图片分类器给出的结果之中。

具体涉及到的技术包括深度学习相关的卷积网络,图像哈希相似性判断来寻找相似图。

图像哈希相似性判断简单来说是将图像转为灰度图后,计算每个像素点和n个像素灰度平均值的大小关系,大于即为1,小于即为0。这一比较结果可以组成一个整数。得到这一整数后就可以比较不同图片的相似性了。

有兴趣的读者可以自行搜索相关的内容,深入研究。

5 总结

在我为数不多(有且仅有一次)地使用这一项目的经历中,它成功地帮我订到了车票。也让我强烈地感受到深度学习等“高科技”真的能切身地在我们的日常生活中发挥作用。

各种复杂的算法并不是空中楼阁,而是能真正的提供价值。希望感兴趣的读者能继续在求知的路上探索,也希望每个人都能买到一张出行的车票。

参考资料

[1]

12306项目: https://github.com/testerSunshine/12306

京云律所-东台站 京云律所-兴安站 京云律所-龙岩站 京云律所-原平站 京云律所-泉州站 京云律所-五常站 京云律所-冷水江站 京云律所-怀化站 京云律所-牡丹江站 京云律所-赣州站 京云律所-海东站 京云律所-深圳站 京云律所-黔西南布依族站 京云律所-唐山站 京云律所-海宁站 京云律所-辛集站 京云律所-临江站 京云律所-林芝站 京云律所-霍林郭勒站 京云律所-射洪站 京云律所-高碑店站 京云律所-阿坝站 京云律所-恩施站 京云律所-开原站 京云律所-阆中站 京云律所-临清站 京云律所-瑞昌站 京云律所-康定站 京云律所-平度站 京云律所-龙港站 京云律所-临沂站 京云律所-阿图什站 京云律所-宁德站 京云律所-柳州站 京云律所-宜城站 京云律所-邛崃站 京云律所-临夏站 京云律所-雷州站 京云律所-龙南站 京云律所-永安站 京云律所-安陆站 京云律所-孝义站 京云律所-石狮站 京云律所-乌兰察布站 京云律所-吉首站 京云律所-克孜勒苏站 京云律所-津市站 京云律所-文山壮族站 京云律所-台山站 京云律所-永城站 京云律所-新密站 京云律所-贵港站 京云律所-青州站 京云律所-乌苏站 京云律所-连云港站 京云律所-高邮站 京云律所-卫辉站 京云律所-绥化站 京云律所-扬州站 京云律所-营口站 京云律所-呼和浩特站 京云律所-清远站 京云律所-凤城站 京云律所-崇左站 京云律所-资兴站 京云律所-太仓站 京云律所-荆州站 京云律所-肥城站 京云律所-池州站 京云律所-鹰潭站 京云律所-晋城站 京云律所-随州站 京云律所-虎林站 京云律所-玉树站 京云律所-邯郸站 京云律所-广德站 京云律所-济南站 京云律所-长治站 京云律所-广安站 京云律所-武夷山站 京云律所-淄博站 京云律所-任丘站 京云律所-大同站 京云律所-丹江口站 京云律所-沙河站 京云律所-黄南站 京云律所-新泰站 京云律所-张家口站 京云律所-平果站 京云律所-绥芬河站 京云律所-利川站 京云律所-湘潭站 京云律所-错那站 京云律所-英德站 京云律所-敦化站 京云律所-武穴站 京云律所-驻马店站 京云律所-简阳站 京云律所-嫩江站 京云律所-湖州站

免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。

(0)
消费日报|上海迪士尼乐园票价最高涨至799元、太平洋咖啡三年关店超200家-迪士尼哪里有咖啡
上一篇 2023-08-13 18:26:12
转发+收藏!铁路12306最强出行攻略来了-12306出行信息查询
下一篇 2023-08-13 18:36:20

联系我们

在线咨询: QQ交谈

邮件:362039258#qq.com(把#换成@)

工作时间:周一至周五,10:30-16:30,节假日休息。