前言

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

但是,所有的乡愁和感伤,最好的解药就是一张火车票。每当万事俱备,总是只欠东风,我依然是被一张 5mm 厚的火车票拦在了门外。隐隐约约在我眼前出现,然后又悄无声息的走掉,说的就是你,我花钱加速都抢不到的火车票。所以阿广今天教大家如何用 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

(2) 加载配置文件

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

(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)
 

(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]]
 

(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]
 

(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]
 

查看源码:更新微信 7.0,你后悔了吗?

☞ 程序员求助:被领导强行要求写Bug该怎么办?网友的回答让我笑翻

☞ 20k~65k, 2018年最后一波热门技术岗位, 立刻投简历, 跳槽才是加薪的捷径

☞何恺明等最新突破:视频识别快慢结合,取得人体动作AVA数据集最佳水平

☞ 霸气!女程媛征男友的需求说明书!

春运渡劫?Python 帮你 12306 抢回家的火车票!相关推荐

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

    数据介绍 12306官方部分数据如下: Python学习资料或者需要代码.视频加Python学习群:960410445 实现过程 注:具有自然语言识别处理功能 (1)加载头文件 (2)加载配置文件 ( ...

  2. 春运渡劫!Python给我抢回家的火车票

    简介:本文首发于个人公众号「视学算法」,作者阿广,一个专注于大数据.人工智能和算法的学习平台,也是一个保送中科院软件研究所直博生的自留地.人生苦短,我愿做您最忠实的技术支持伙伴!一起用代码改变世界! ...

  3. python+selenium实现12306抢票

    python+selenium实现12306抢票 一.准备工作 1.要先下载相关的包,selenium.interval.最好使用国内清华源 pip install (which package) - ...

  4. python编程实践(3):python+selenium实现12306抢票脚本

    又到了一年一度的春运时节,抢个票? 1.设计思路 如果我们要买一张火车票,我们会怎么做?打开12306,登陆,输入出发地和目的地,选择出行日期,然后点击查询,有余票的话就下单购买,没有票就点刷新或者等 ...

  5. Python 实现的12306抢票脚本

    Python12306抢票脚本 本脚本使用一个类来实现所有代码,大体上分为以下几个模块及其步骤: - 初始化对象属性(在抢票前进行的属性初始化,包括初始化浏览器模拟对象,个人信息等). - 建立模拟浏 ...

  6. Python版实现12306抢票功能,真的能帮你抢到春运回家的票吗?

    背景 每逢佳节倍思亲,年关将近,思乡的情绪是不是愈发强烈了,筒子们是不是又要准备开始抢票了,还是在找黄牛吗?但是,今年在考虑是否能抢到票以外,还需要考虑是否能回得去,没错,因为疫情,需要全国人民同心协 ...

  7. 【新年返程离不开Python】最新12306抢票源程序Python版就此分享给大家啦!

    前言 本代码采用selenium 自动化测试模块,这里用于操作浏览器,就是通过selenium 自动化测试模块让浏览器模拟人来操作浏览器,从而实现购票. 本程序操作的chrom浏览器,需要提前下载浏览 ...

  8. python自动刷新12306抢票

    #!/usr/bin/env python #-*- coding: utf-8 -*- """ 通过splinter刷12306火车票 可以自动填充账号密码,同时,在登 ...

  9. python GUI+爬虫——12306抢票软件(1)

    使用python 的GUI 和爬虫等功能自己构造一个12306的抢票软件. 该课程来自网易云课堂的撩课学院,付费课程.地址:网易云课堂搜索以下内容就可找到 我跟着学,不一定最后能成功.先试试,想要成功 ...

最新文章

  1. 模式的秘密-观察者模式(四)
  2. java多态简单例子6_Java_6、面向对象——继承和多态
  3. 北京冬奥会“特许上新日”迎春节 将集中上市多款年味产品
  4. 初识linux之文件管理
  5. linux ipv6 组播地址,ipv6组播地址是什么意思
  6. UDP实现全双工聊天(聊天工具进阶)pyhton
  7. Base64编码及Android的应用
  8. Django rest framework 基础
  9. Engineering Department Bulletin News and information for the Department
  10. 笔记·mybatis核心对象和全局配置文件
  11. 苹果android 对比,苹果安卓旗舰差距有多少?看了这份对比,果粉傻眼了
  12. 实验 5 编写、调试具有多个段的
  13. Ibatis.Net 各类的作用说明学习(三)
  14. Spring Boot 中文索引--资料大全
  15. 基于matlab的2ASK调制解调仿真
  16. 【黑群晖】搭建共享存储云盘系统
  17. nodejs 实现 磁力链接资源搜索 BT磁力链接爬虫
  18. 用python制作上海疫情评论词云图-自定义形状
  19. 《道德经》全文 (马王堆出土帛书版)
  20. python 单一继承定义_python 单继承、多继承、菱形继承

热门文章

  1. LinuxShell笔记3 条件控制和流程控制
  2. Flutter基础—绘画效果之不透明度
  3. 跌落式封隔器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  4. 从零入门 Serverless | 使用 Spot 低成本运行 Job 任务
  5. jdbc连接oracle查询数据库,JDBC连接Oracle数据库,并操作数据库,查询表
  6. vs code linux 权限,在linux系统中安装VSCode(Visual Studio Code)
  7. 《2022产业互联网安全十大趋势》正式发布
  8. UTF-8字符集成为Java 18默认字符集?发布周期将至,Java 18现身
  9. SQLite性能提升10倍的Web数据库
  10. 16 年前,Google 为何花 5000 万美元买下 Android?