春运渡劫?Python帮你12306抢回家的火车票

开发 后端 移动开发
年味越来越淡,但我对过年的期待一直没变。为了理想,离开家乡。这一路,背上行囊,穿过人潮,千里迢迢。疲惫也好,激动也罢,总有家乡值得牵挂。由于乡愁泛滥成灾、爱情糜烂至极、友情西辞黄鹤,所以阿广今天教大家如果用Python抢火车票!解决你的乡情、爱情、友情,说不定还有基情?

前言

年味越来越淡,但我对过年的期待一直没变。为了理想,离开家乡。这一路,背上行囊,穿过人潮,千里迢迢。疲惫也好,激动也罢,总有家乡值得牵挂。

春节是孟浩然“昨夜斗回北,今朝岁起东”的唏嘘,不仅感叹于“田家占气候,共说此年丰”的蹉跎岁月,更多感伤于这一年下来的“无禄尚忧农”自我调侃的碌碌无为;春节是董必武“共庆新年笑语哗,红岩士女赠梅花”的对新年的期待,也有“举杯互敬屠苏酒,散席分尝胜利茶。只有精忠能报国,更无乐土可为家。”的伟大抱负。

但是,所有的乡愁和感伤,最好的解药就是一张火车票。每当万事俱备,总是只欠东风,我依然是被一张5mm厚的火车票拦在了门外。隐隐约约在我眼前出现,然后又悄无声息的走掉,说的就是你,我花钱加速都抢不到的火车票。

大学四年以接近尾声,遗憾于爱情的“你好我爱你,再见,对不起”。这种遗憾经过反复斟酌和推敲,有那么一刻,我感觉你我之间的距离就是那张“近在眼前,远在天边”可望而不可及的火车票。

由于乡愁泛滥成灾、爱情糜烂至极、友情西辞黄鹤,所以阿广今天教大家如果用Python抢火车票!解决你的乡情、爱情、友情,说不定还有基情?

数据介绍

12306官方部分数据如下:

春运渡劫?Python帮你12306抢回家的火车票

实现过程

注:具有自然语言识别处理功能

(1)加载头文件

from distutils.log import warn as printf 
import sys 
from bosonnlp import BosonNLP 
import yaml 
from os.path import expanduser 
import os 
import collections 
import subprocess 
import datetime 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

(2)加载配置文件

home = expanduser("~"
with open(os.path.join(home,".ibot.yml")) as f: 
   config = yaml.load(f) 
   bosonnlp_token = config["token"
  • 1.
  • 2.
  • 3.
  • 4.

(3)解析字符串

def parse(self, query_string): 
       ""
       input: 
       1月12号 济南到兖州的高铁票 
       output
       [{'entity': [[0, 3, 'time'], [3, 4, 'location'], [5, 6, 'location']], # 需要理解实体出现的模式,这块需要理解上下文 
       'tag': ['t''m''q''ns''p''ns''ude''n''n'], 
        'word': ['1月''12''号''济南''到''兖州''的''硬座''票']}] 
       ""
       result = self.nlp.ner(query_string)[0] 
       words = result['word'
       tags = result['tag'
       entities = result['entity'
       return (words,entities,tags) 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

(4)获得已识别的实体

def get_entity(self,parsed_words,index_tuple): 
       ""
       获取已识别的实体 
       采用filter 
       参考 python cookbook部分 
       input: 
           entities : 二元组 
           parsed_words : 解析好的词组 
       ""
       return parsed_words[index_tuple[0]:index_tuple[1]] 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

(5)元组重新命名

def format_entities(self,entities): 
       ""
       给元组命名 
       ""
       namedentity = collections.namedtuple('namedentity','index_begin index_end entity_name'
       return [namedentity(entity[0],entity[1],entity[2]) for entity in entities] 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

(6)获取解析时间戳

def get_format_time(self,time_entity): 
       ""
       output 
       {'timestamp''2018-12-20 23:30:29''type''timestamp'
       ""
       basetime = datetime.datetime.today() 
       result = self.nlp.convert_time( 
           time_entity, 
           basetime) 
       #print(result) 
       timestamp = result["timestamp"
       return timestamp.split(" ")[0] 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

https://github.com/zandaoguang/MissHome

如何调用?

iquery 济南 兖州 20190112 
ibot 本周天从济南回老家兖州,帮我看下 
ibot 本周五从兖州出发,打算去北京捡垃圾,帮我看下有没有车票 
ib 这周六从南京回武夷山老家,帮我看下车票 
... 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

查询结果并抢票

春运渡劫?Python帮你12306抢回家的火车票

阿广说

自从学了计算机,每逢思乡之情冉冉升起,只能通过加快敲击键盘的速度来忘记此时此刻的烽火三月、家书万金。

盼望着,盼望着,寒假来了,春天的脚步近了。在我们童颜尚驻时,过年缺少不了的部门就是走亲戚,有鱼肉之果腹,亦有无案牍之劳形。可后来的后来,我们长大了,走亲戚在无形之中成了一种“烦恼”。

我们累于东家跑西家蹿;我们累于各类繁文缛节;我们累于各式尬聊;我们累于招呼熊孩子;我们累于送礼送红包;我们累于各种解释;我们累于被明里奚落、暗里鄙视;我们累于装体面、撑面子。

春运渡劫?Python帮你12306抢回家的火车票

明明生活不止眼前的苟且,还有往后余生的苟且,可碍于面子,我们依然装作不但有诗和远方,还要有钱途的样子。

[[253869]]

如果把过年比作爱情,那岂是:长街长,烟花繁,你挑灯回看;短亭短,红尘辗,我把萧再叹?通俗点讲,我愿用三生烟火,换你一张通往家乡的火车票。

责任编辑:未丽燕 来源: 视学算法
相关推荐

2018-01-02 09:56:04

Python12306火车票

2011-01-28 15:48:11

Chrome插件Page Monito火车票

2013-01-07 17:34:47

火车票抢票浏览器

2020-12-18 08:55:20

Python火车票代码

2018-01-10 22:19:44

2012-01-05 13:14:42

火车票

2020-01-13 07:42:01

技术研发指标

2015-03-18 15:05:12

12306验证码

2013-01-23 11:24:57

360浏览器抢票

2018-01-05 09:33:10

Python火车票春运

2011-12-20 14:09:40

2022-04-27 13:36:18

12306铁路12306

2019-12-26 17:07:30

Python程序员GitHub

2023-09-26 12:08:20

开源python

2012-11-21 15:56:50

淘宝12306

2013-01-21 13:07:31

傲游云浏览器

2016-08-31 13:26:24

PythonPython3工具

2014-12-22 09:42:51

12306

2013-01-14 17:02:10

猎豹浏览器
点赞
收藏

51CTO技术栈公众号