Click the blue word "python tutorial" to follow us!
Code display:
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 ='' #Login mailbox pwd =''#Mailbox password to = [''] #Sent mailbox with open('D:\Python source code\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],'Second-class seat:', erdengzuo[i],'Hard seat:', yingzuo[i],' No seat:',wuzuo[i]) if yingwo[i] !='--' or yingzuo[i] !='None': msg=MIMEText('Train:'+fromstation[i]+' ->'+tostation[i] +'('+ checi[i]+')\nSecond-class seat:'+erdengzuo[i]+'张; Hard seat:'+ yingzuo[i]+' Zhang; No seat:'+wuzuo[i]+'Zhang! Buy it soon!\nURL: http://www.12306.cn/opn/lcxxcx/init' ) msg['Subject'] ='There are tickets! ' msg['From'] = user msg['To'] =','.join(to) s = smtplib.SMTP('smtp.qq.com', timeout = 30) #Connect SMTP port s.login(user,pwd)#Login to the server s.sendmail(user,to,msg.as_string()) s.close() print('Send successfully') print('----------------------------------------------- -------------') except: continue print('''''
By:Wang Xiaotao_Classmate -------------------------------------------------- ------------ welcome! -------------------------------------------------- ------------ ''') print ('Please enter the type of ticket purchase: (0 is adult ticket and the other is student ticket)') leixing = input() print('Please enter the starting point:') qidian = input() try: if dic1[qidian]: qidian = dic1[qidian] except: print('The starting point is entered incorrectly!') print('Please enter the end point:') zhongdian = input() try: if dic1[zhongdian]: zhongdian = dic1[zhongdian] except: print('The end point is entered incorrectly!') print('Please enter the year of ticket purchase:') year = input()+'-' print('Please enter the month of ticket purchase: (2 digits)') month = input()+'-' print('Please enter the date of purchase: (2 digits)') 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('Train ticket monitoring...') time.sleep(300) </pre>
Precautions
01
Students who are interested in Python development technology, welcome to join the communication group below to learn together and discuss with each other.
02
If you don’t understand in the process of learning python, you can join my python zero-base system to learn and exchange Qiuqiu qun: 934109170, to share with you the current talent needs of Python companies and how to learn Python from a zero-base, and what to learn. Related learning video materials and development tools are shared
Alright! The article is shared with the readers here
Finally, if you find it helpful, remember to follow, forward, and favorite