12306 火车票监控Python代码

12306 火车票监控Python代码,第1张

概述12306 火车票监控Python代码

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

    import urllib.request as request      import http.cookiejar as cookiejar      import re      import os      import smtplib      from email.mime.text import MIMEText      import time      user = '' #登陆邮箱      pwd = ''#邮箱密码      to = [''] #发送的邮箱      with open('D:\Python源码\city.txt','r') as f:         a = f.read()      station = re.compile(u'\w+:(.+?):(\w+):\d').findall(a)      dic1 = {}      for b in range(0,len(station)):          dic1[station[b][0]] = station[b][1]      def getHTML(geturl):          cj = cookiejar.LWPcookieJar()          cookiejarsupport = request.httpcookieProcessor(cj)          opener = request.build_opener(cookiejarsupport,request.httpHandler)          headers = {              'User-Agent':'Mozilla/5.0 (windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/39.0.2171.99 Safari/537.36','Host':'www.12306.cn','Referer':'http://www.12306.cn/opn/lcxxcx/init'          }          request.install_opener(opener)          req = request.Request(url=geturl,headers=headers)          HTML = request.urlopen(req).read().decode()          return HTML      def getstation(HTML):          fromstation = re.compile(r'from_station_name":"(.+?)","').findall(HTML)          tostation = re.compile(r'to_station_name":"(.+?)",').findall(HTML)          startime =  re.compile(r'"start_time":"(.+?)"').findall(HTML)          arrtime = re.compile(r'arrive_time":"(.+?)"').findall(HTML)          lishi =  re.compile(r'"lishi":"(.+?)",').findall(HTML)          webbuy = re.compile(r'"canWebBuy":"(.+?)').findall(HTML)          startstation = re.compile(r'start_station_name":"(.+?)"').findall(HTML)          endstation = re.compile(r'end_station_name":"(.+?)"').findall(HTML)          ruanwo = re.compile((r'"rw_num":"(.+?)",')).findall(HTML)          ruanzuo = re.compile((r'"rz_num":"(.+?)"')).findall(HTML)          yingwo = re.compile(r'"yw_num":"(.+?)"').findall(HTML)          ruanzuo = re.compile(r'"rz_num":"(.+?)"').findall(HTML)          yingzuo = re.compile(r'"yz_num":"(.+?)"').findall(HTML)          wuzuo = re.compile(r'"wz_num":"(.+?)"').findall(HTML)          checi = re.compile(r'station_train_code":"(.+?)"').findall(HTML)          datanum = re.compile((r'day_difference":"(.+?)"')).findall(HTML)          erdengzuo = re.compile(r'ze_num":"(.+?)",').findall(HTML)          num = range(0,len(yingwo))          for i in num:              try:                  if int(yingzuo[i]) != 0 or int(erdengzuo[i]) != 0 or int(wuzuo[i] !=0):     #Z108                      print(checi[i],'    二等座:  ',erdengzuo[i],'    硬座:   ',yingzuo[i],'   无座:  ',wuzuo[i])                      if yingwo[i] != '--' or yingzuo[i] != '无':                          msg=MIMEText('火车: '+fromstation[i]+' ->'+tostation[i] +'('+ checi[i]+ ')\n二等座:'+erdengzuo[i]+ '张;硬座:'+ yingzuo[i]+'张;无座:'+wuzuo[i]+ '张!快买去!\n网址: http://www.12306.cn/opn/lcxxcx/init')                          msg['Subject'] = '有票啦!'                          msg['From'] = user                          msg['To'] = ','.join(to)                          s = smtplib.SMTP('smtp.qq.com',timeout = 30) #连接SMTP端口                          s.login(user,pwd)#登陆服务器                          s.sendmail(user,to,msg.as_string())                          s.close()                          print('发送成功')                          print('------------------------------------------------------------')              except:                  continue      print('''''         By:王小涛_同學     --------------------------------------------------------------         欢迎使用!     --------------------------------------------------------------     ''')      print ('请输入购票类型: (0为成人票   其他为学生票) ')      leixing = input()      print('请输入起点:')      qIDian = input()      try:          if dic1[qIDian]:              qIDian = dic1[qIDian]      except:          print('起点输入有误!')      print('请输入终点:')      zhongdian = input()      try:          if dic1[zhongdian]:              zhongdian = dic1[zhongdian]      except:          print('终点输入有误!')      print('请输入购票年份:')      year = input()+'-'      print('请输入购票月份:(2位)')      month = input()+'-'      print('请输入购票日期:(2位)')      date = input()      date = year + month + date                  if leixing == 0:         geturl = 'http://www.12306.cn/opn/lcxxcx/query?purpose_codes=ADulT&queryDate='+date+'&from_station='+qIDian+'&to_station='+ zhongdian      else:          geturl = 'http://www.12306.cn/opn/lcxxcx/query?purpose_codes=0X00&queryDate='+date+'&from_station='+qIDian+'&to_station='+ zhongdian      while 1:          getstation(getHTML(geturl))          print('火车票监测中...')          time.sleep(300)  

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的12306 火车票监控Python代码全部内容,希望文章能够帮你解决12306 火车票监控Python代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1198590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存