欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  python学习教程,12306火车票抢票系统
 
  代码展示:
 
  1'''
 
  2在学习过程中有什么不懂得可以加我的python学习交流扣扣qun,934109170,群里有不错的学习教程、开发工具与电子书籍。
 
  3与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。
 
  4'''
 
  5importurllib.requestasrequest
 
  6
 
  7importhttp.cookiejarascookiejar
 
  8
 
  9importre
 
  10
 
  11importos
 
  12
 
  13importsmtplib
 
  14
 
  15fromemail.mime.textimportMIMEText
 
  16
 
  17importtime
 
  18
 
  19user=''#登陆邮箱
 
  20
 
  21pwd=''#邮箱密码
 
  22
 
  23to=['']#发送的邮箱
 
  24
 
  25withopen('D:\Python源码\city.txt','r')asf:
 
  26
 
  27a=f.read()
 
  28
 
  29station=re.compile(u'\w+:(.+?):(\w+):\d').findall(a)
 
  30
 
  31dic1={}
 
  32
 
  33forbinrange(0,len(station)):
 
  34
 
  35dic1[station[b][0]]=station[b][1]
 
  36
 
  37defgethtml(geturl):
 
  38
 
  39cj=cookiejar.LWPCookieJar()
 
  40
 
  41cookiejarsupport=request.HTTPCookieProcessor(cj)
 
  42
 
  43opener=request.build_opener(cookiejarsupport,request.HTTPHandler)
 
  44
 
  45headers={
 
  46
 
  47'User-Agent':'Mozilla/5.0(WindowsNT6.3;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/39.0.2171.99Safari/537.36',
 
  48
 
  49'Host':'www.12306.cn',
 
  50
 
  51'Referer':'http://www.12306.cn/opn/lcxxcx/init'
 
  52
 
  53}
 
  54
 
  55request.install_opener(opener)
 
  56
 
  57req=request.Request(url=geturl,headers=headers)
 
  58
 
  59html=request.urlopen(req).read().decode()
 
  60
 
  61returnhtml
 
  62
 
  63defgetstation(html):
 
  64
 
  65fromstation=re.compile(r'from_station_name":"(.+?)","').findall(html)
 
  66
 
  67tostation=re.compile(r'to_station_name":"(.+?)",').findall(html)
 
  68
 
  69startime=re.compile(r'"start_time":"(.+?)"').findall(html)
 
  70
 
  71arrtime=re.compile(r'arrive_time":"(.+?)"').findall(html)
 
  72
 
  73lishi=re.compile(r'"lishi":"(.+?)",').findall(html)
 
  74
 
  75webbuy=re.compile(r'"canWebBuy":"(.+?)').findall(html)
 
  76
 
  77startstation=re.compile(r'start_station_name":"(.+?)"').findall(html)
 
  78
 
  79endstation=re.compile(r'end_station_name":"(.+?)"').findall(html)
 
  80
 
  81ruanwo=re.compile((r'"rw_num":"(.+?)",')).findall(html)
 
  82
 
  83ruanzuo=re.compile((r'"rz_num":"(.+?)"')).findall(html)
 
  84
 
  85yingwo=re.compile(r'"yw_num":"(.+?)"').findall(html)
 
  86
 
  87ruanzuo=re.compile(r'"rz_num":"(.+?)"').findall(html)
 
  88
 
  89yingzuo=re.compile(r'"yz_num":"(.+?)"').findall(html)
 
  90
 
  91wuzuo=re.compile(r'"wz_num":"(.+?)"').findall(html)
 
  92
 
  93checi=re.compile(r'station_train_code":"(.+?)"').findall(html)
 
  94
 
  95datanum=re.compile((r'day_difference":"(.+?)"')).findall(html)
 
  96
 
  97erdengzuo=re.compile(r'ze_num":"(.+?)",').findall(html)
 
  98
 
  99num=range(0,len(yingwo))
 
  100
 
  101foriinnum:
 
  102
 
  103try:
 
  104
 
  105ifint(yingzuo[i])!=0orint(erdengzuo[i])!=0orint(wuzuo[i]!=0):#Z108
 
  106
 
  107print(checi[i],'二等座:',erdengzuo[i],'硬座:',yingzuo[i],'无座:',wuzuo[i])
 
  108
 
  109ifyingwo[i]!='--'oryingzuo[i]!='无':
 
  110
 
  111msg=MIMEText('火车:'+fromstation[i]+'->'+tostation[i]+'('+checi[i]+')\n二等座:'+erdengzuo[i]+'张;硬座:'+yingzuo[i]+'张;无座:'+wuzuo[i]+'张!快买去!\n网址:http://www.12306.cn/opn/lcxxcx/init')
 
  112
 
  113msg['Subject']='有票啦!'
 
  114
 
  115msg['From']=user
 
  116
 
  117msg['To']=','.join(to)
 
  118
 
  119s=smtplib.SMTP('smtp.qq.com',timeout=30)#连接SMTP端口
 
  120
 
  121s.login(user,pwd)#登陆服务器
 
  122
 
  123s.sendmail(user,to,msg.as_string())
 
  124
 
  125s.close()
 
  126
 
  127print('发送成功')
 
  128
 
  129print('------------------------------------------------------------')
 
  130
 
  131except:
 
  132
 
  133continue
 
  134
 
  135print('''''
 
  136
 
  137By:王小涛_同學
 
  138--------------------------------------------------------------
 
  139欢迎使用!
 
  140--------------------------------------------------------------
 
  141''')
 
  142print('请输入购票类型:(0为成人票其他为学生票)')
 
  143leixing=input()
 
  144print('请输入起点:')
 
  145qidian=input()
 
  146try:
 
  147ifdic1[qidian]:
 
  148qidian=dic1[qidian]
 
  149except:
 
  150print('起点输入有误!')
 
  151print('请输入终点:')
 
  152zhongdian=input()
 
  153try:
 
  154ifdic1[zhongdian]:
 
  155zhongdian=dic1[zhongdian]
 
  156except:
 
  157print('终点输入有误!')
 
  158print('请输入购票年份:')
 
  159year=input()+'-'
 
  160print('请输入购票月份:(2位)')
 
  161month=input()+'-'
 
  162print('请输入购票日期:(2位)')
 
  163date=input()
 
  164date=year+month+date
 
  165
 
  166
 
  167ifleixing==0:
 
  168geturl='http://www.12306.cn/opn/lcxxcx/query?purpose_codes=ADULT&queryDate='+date+'&from_station='+qidian+'&to_station='+zhongdian
 
  169else:
 
  170geturl='http://www.12306.cn/opn/lcxxcx/query?purpose_codes=0X00&queryDate='+date+'&from_station='+qidian+'&to_station='+zhongdian
 
  171while1:
 
  172getstation(gethtml(geturl))
 
  173print('火车票监测中...')
 
  174time.sleep(300)</pre>
 
  现在Python的发展趋势已经很明显了,以后就是人工智能和大数据的时代,你还不会系统的Python,你能跟上市场发展的需求和步伐嘛,想学习就业或转行的你还在考虑什么,难道要等市场饱和之后你再学习?想学习的你就给自己一次投资学习的机会,不然怎么去改变自己,成为更优秀的自己。学习python爬虫过程中有不懂的可以给我留言,可以关注一下我,我会不定时分享关于python相关小案例及学习经验

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h54708.shtml