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

Posted xiaoyiq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(rfrom_station_name":"(.+?)",").findall(html)
 66  
 67         tostation = re.compile(rto_station_name":"(.+?)",).findall(html)
 68  
 69         startime =  re.compile(r"start_time":"(.+?)").findall(html)
 70  
 71         arrtime = re.compile(rarrive_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(rstart_station_name":"(.+?)").findall(html)
 78  
 79         endstation = re.compile(rend_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(rstation_train_code":"(.+?)").findall(html)
 94  
 95         datanum = re.compile((rday_difference":"(.+?)")).findall(html)
 96  
 97         erdengzuo = re.compile(rze_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相关小案例及学习经验

以上是关于python学习教程,12306火车票抢票系统的主要内容,如果未能解决你的问题,请参考以下文章

Python操作12306抢票脚本

python3.7之12306抢票脚本实现

12306 分流抢票 纯净绿色版

12306的西天取经路 春节抢票与PostgreSQL数据库设计思考

”12306“秒杀系统的设计艺术

Python:基于Python爬虫技术的抢票程序及其实现