python学习教程,12306火车票抢票系统

python学习教程,12306火车票抢票系统

代码展示:

  1 ‘‘‘
  2 在学习过程中有什么不懂得可以加我的python学习交流扣扣qun,934109170,群里有不错的学习教程、开发工具与电子书籍。
  3 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。
  4 ‘‘‘
  5 import urllib.request as request
  6
  7     import http.cookiejar as cookiejar
  8
  9     import re
 10
 11     import os
 12
 13     import smtplib
 14
 15     from email.mime.text import MIMEText
 16
 17     import time
 18
 19     user = ‘‘ #登陆邮箱
 20
 21     pwd = ‘‘#邮箱密码
 22
 23     to = [‘‘] #发送的邮箱
 24
 25     with open(‘D:\Python源码\city.txt‘,‘r‘) as f:
 26
 27        a = f.read()
 28
 29     station = re.compile(u‘\w+:(.+?):(\w+):\d‘).findall(a)
 30
 31     dic1 = {}
 32
 33     for b in range(0, len(station)):
 34
 35         dic1[station[b][0]] = station[b][1]
 36
 37     def gethtml(geturl):
 38
 39         cj = cookiejar.LWPCookieJar()
 40
 41         cookiejarsupport = request.HTTPCookieProcessor(cj)
 42
 43         opener = request.build_opener(cookiejarsupport,request.HTTPHandler)
 44
 45         headers = {
 46
 47             ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36‘,
 48
 49             ‘Host‘:‘www.12306.cn‘,
 50
 51             ‘Referer‘:‘http://www.12306.cn/opn/lcxxcx/init‘
 52
 53         }
 54
 55         request.install_opener(opener)
 56
 57         req = request.Request(url=geturl, headers=headers)
 58
 59         html = request.urlopen(req).read().decode()
 60
 61         return html
 62
 63     def getstation(html):
 64
 65         fromstation = re.compile(r‘from_station_name":"(.+?)","‘).findall(html)
 66
 67         tostation = re.compile(r‘to_station_name":"(.+?)",‘).findall(html)
 68
 69         startime =  re.compile(r‘"start_time":"(.+?)"‘).findall(html)
 70
 71         arrtime = re.compile(r‘arrive_time":"(.+?)"‘).findall(html)
 72
 73         lishi =  re.compile(r‘"lishi":"(.+?)",‘).findall(html)
 74
 75         webbuy = re.compile(r‘"canWebBuy":"(.+?)‘).findall(html)
 76
 77         startstation = re.compile(r‘start_station_name":"(.+?)"‘).findall(html)
 78
 79         endstation = re.compile(r‘end_station_name":"(.+?)"‘).findall(html)
 80
 81         ruanwo = re.compile((r‘"rw_num":"(.+?)",‘)).findall(html)
 82
 83         ruanzuo = re.compile((r‘"rz_num":"(.+?)"‘)).findall(html)
 84
 85         yingwo = re.compile(r‘"yw_num":"(.+?)"‘).findall(html)
 86
 87         ruanzuo = re.compile(r‘"rz_num":"(.+?)"‘).findall(html)
 88
 89         yingzuo = re.compile(r‘"yz_num":"(.+?)"‘).findall(html)
 90
 91         wuzuo = re.compile(r‘"wz_num":"(.+?)"‘).findall(html)
 92
 93         checi = re.compile(r‘station_train_code":"(.+?)"‘).findall(html)
 94
 95         datanum = re.compile((r‘day_difference":"(.+?)"‘)).findall(html)
 96
 97         erdengzuo = re.compile(r‘ze_num":"(.+?)",‘).findall(html)
 98
 99         num = range(0, len(yingwo))
100
101         for i in num:
102
103             try:
104
105                 if int(yingzuo[i]) != 0 or int(erdengzuo[i]) != 0 or int(wuzuo[i] !=0):     #Z108
106
107                     print(checi[i], ‘    二等座:‘, erdengzuo[i], ‘    硬座:‘, yingzuo[i],‘   无座:‘,wuzuo[i])
108
109                     if yingwo[i] != ‘--‘ or yingzuo[i] != ‘无‘:
110
111                         msg=MIMEText(‘火车:‘+fromstation[i]+‘ ->‘+tostation[i] +‘(‘+ checi[i]+ ‘)\n二等座:‘+erdengzuo[i]+ ‘张;硬座:‘+ yingzuo[i]+‘张;无座:‘+wuzuo[i]+ ‘张!快买去!\n网址:http://www.12306.cn/opn/lcxxcx/init‘)
112
113                         msg[‘Subject‘] = ‘有票啦!‘
114
115                         msg[‘From‘] = user
116
117                         msg[‘To‘] = ‘,‘.join(to)
118
119                         s = smtplib.SMTP(‘smtp.qq.com‘, timeout = 30) #连接SMTP端口
120
121                         s.login(user,pwd)#登陆服务器
122
123                         s.sendmail(user,to,msg.as_string())
124
125                         s.close()
126
127                         print(‘发送成功‘)
128
129                         print(‘------------------------------------------------------------‘)
130
131             except:
132
133                 continue
134
135     print(‘‘‘‘‘
136
137 By:王小涛_同學
138 --------------------------------------------------------------
139     欢迎使用!
140 --------------------------------------------------------------
141 ‘‘‘)
142 print (‘请输入购票类型:(0为成人票   其他为学生票) ‘)
143 leixing = input()
144 print(‘请输入起点:‘)
145 qidian = input()
146 try:
147     if dic1[qidian]:
148         qidian = dic1[qidian]
149 except:
150     print(‘起点输入有误!‘)
151 print(‘请输入终点:‘)
152 zhongdian = input()
153 try:
154     if dic1[zhongdian]:
155         zhongdian = dic1[zhongdian]
156 except:
157     print(‘终点输入有误!‘)
158 print(‘请输入购票年份:‘)
159 year = input()+‘-‘
160 print(‘请输入购票月份:(2位)‘)
161 month = input()+‘-‘
162 print(‘请输入购票日期:(2位)‘)
163 date = input()
164 date = year + month + date
165
166
167 if leixing == 0:
168    geturl = ‘http://www.12306.cn/opn/lcxxcx/query?purpose_codes=ADULT&queryDate=‘+date+‘&from_station=‘+qidian+‘&to_station=‘+ zhongdian
169 else:
170     geturl = ‘http://www.12306.cn/opn/lcxxcx/query?purpose_codes=0X00&queryDate=‘+date+‘&from_station=‘+qidian+‘&to_station=‘+ zhongdian
171 while 1:
172     getstation(gethtml(geturl))
173     print(‘火车票监测中...‘)
174     time.sleep(300)  </pre>

现在Python的发展趋势已经很明显了,以后就是人工智能和大数据的时代,你还不会系统的Python,你能跟上市场发展的需求和步伐嘛,想学习就业或转行的你还在考虑什么,难道要等市场饱和之后你再学习?想学习的你就给自己一次投资学习的机会,不然怎么去改变自己,成为更优秀的自己。学习python爬虫过程中有不懂的可以给我留言,可以关注一下我,我会不定时分享关于python相关小案例及学习经验

原文地址:https://www.cnblogs.com/xiaoyiq/p/11130297.html

时间: 2024-09-30 14:19:36

python学习教程,12306火车票抢票系统的相关文章

12306 分流抢票 纯净绿色版

全程自动抢票,云打码自动识别验证码,多线程秒单.稳定捡漏,支持多天.多车次.短信提醒.??12306Bypass,12306分流抢票软件,完全免费的12306抢票软件,功能强易使用,全程自动抢票,云打码自动识别验证码,多线程秒单.稳定捡漏,支持多天.多车次.多席别.多乘客.短信邮件提醒等功能. ?2018年春运即将开启,根据火车票预售期为30天的规定,今天起,2018春运火车票正式发售,现在就可以购买2月1日(农历腊月十六),即春运首日的火车票了!1月17日可以购买除夕(2月15日)当天的火车票

Python学习教程(Python学习路线+Python学习视频):Python数据结构

Python学习教程(Python学习路线+Python学习视频):Python数据结构   数据结构引言:   数据结构是组织数据的方式,以便能够更好的存储和获取数据.数据结构定义数据之间的关系和对这些数据的操作方式.数据结构屏蔽了数据存储和操作的细节,让程序员能更好的处理业务逻辑,同时拥有快速的数据存储和获取方式. 在这篇文章中,你将了解到多种数据结构以及这些数据结构在Python中实现的方式.    抽象数据类型和数据结构 数据结构是抽象数据类型(ADT)的实现,通常,是通过编程语言提供的

Python学习教程:人生苦短,我用Python?入门前你要知道这些

有多少伙伴是因为一句 ‘人生苦短,我用Python’就要去学Python的? 之前也大家更新过Python学习教程普及过多次的Python相关知识,不过大家还是还得计划一下Python学习路线!Python入门前,一定要知道这些,你只有了解它,才能深入它! python是什么?  编程开发语言有很多种,通常大家把开发语言划分为静态编译和动态解析语言,静态编译语言有我们常见的c,c++等,动态解析语言有我们常见的python,php等.静态编译语言其中一个明显的特征是:需要对源代码进行编译成可执行

Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解

Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解 概述 在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值.复制.浅拷贝.深拷贝等绕口的名词到底有什么区别和作用呢? 列表赋值 # 定义一个新列表l1 = [1, 2, 3, 4, 5]# 对l2赋值l2 = l1print(l1)l2[0] = 100print(l1) 示例结果: [1, 2, 3, 4, 5][100, 2, 3, 4, 5] 可以看到,更改赋

Python学习教程:最全Python110道面试题!面试你肯定用得上!

Python学习教程(Python学习路线):最全Python面试题! 为了大家更好的消化,这里分成几次给大家出题目和教程! 1.一行代码实现1--100之和 利用sum()函数求和 2.如何在一个函数内部修改全局变量 函数内部global声明 修改全局变量 3.列出5个python标准库 os:提供了不少与操作系统相关联的函数 sys: 通常用于命令行参数 re: 正则匹配 math: 数学运算 datetime:处理日期时间 4.字典如何删除键和合并两个字典 del和update方法 5.谈

火车票抢票API 根据乘客的车次与座席要求快速订票出票

火车票抢票API 根据乘客的车次与座席要求快速订票出票,具体API文档,包括接口地址.参数及返回示例等可参看:https://www.juhe.cn/docs/api/id/257 一.站站查询,根据发车站.到达站.发车日期等条件查询所有符合条件的车次信息.票价.剩余票量等信息 二.创建抢票单,建议先配置回调地址.须知: 1.抢票单仅支持占座和出票合并通知:2.距离发车时间太近无法抢票,建议距离发车前3小时以上的车次才可创建抢票单:3.在抢票有效时间内会持续抢票,抢票成功后直接出票并推送回调: 

12306火车票订票失败!您的身份信息未经核验,一般人是不能订票的,我订了,但是没成功。。。

上图哈,未经核验能可以订票,不过出票失败了,看来12306不是吃干饭的 12306火车票订票失败!您的身份信息未经核验,一般人是不能订票的,我订了,但是没成功...

Python学习教程(Python学习路线):python—收集系统信息

Python学习教程(Python学习路线):python—收集系统信息  1.1 hashlib模块使用 获取文件的MD5值,和shell下的MD5sum一样 方法一:先实例化一个对象,再使用update做校验,最后十六进制查看hexdigest In [3]: import hashlib In [5]: md5 = hashlib.md5 In [6]: md5.update("a") In [7]: md5.hexdigest Out[7]: '0cc175b9c0f1b6a8

2019最新Python学习教程(Python学习路线_Python爬虫教程)爬虫工程师必备的10个爬虫工具

2019最新Python学习教程(Python学习路线_Python爬虫教程)爬虫工程师必备的10个爬虫工具 爬虫工程师必备的10个爬虫工具! 最近很多学爬虫的伙伴让推荐顺手的爬虫工具,总结了一下,把这些好用的爬虫工具都跟你们找齐活了! 磨刀不误砍柴工!都知道工欲善其事必先利其器,那么作为经常要和各大网站做拉锯战的爬虫工程师们,更需要利用利用好身边的一切法器,才能更快的攻破对方防线.这里以日常爬虫流程,给大家介绍十款爬虫工具,相信大家掌握以后,工作效率提高是完全没有问题了! 大家也可以看看有你们