我是靠谱客的博主 阔达芒果,最近开发中收集的这篇文章主要介绍python图书馆预约系统_【转载】Python实现图书馆预约功能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 #-*- coding: utf-8 -*-

2 #!usr/bin/env python

3 importos4 importurllib25 importurllib6 importcookielib7 importre8 from bs4 importBeautifulSoup9

10 Login_URL='http://xxxx'

11 Main_URL='http://xxxx/Florms/FormSYS.aspx'

12 username='XXXXX'

13 password='XXX'

14 roomNum='20200xxxx'

15 roomId=['309','310','311','307',]16 day='2015-XXXX'

17 deflogin():18 Seats_URL='http://10.21.16.215/FunctionPages/SeatBespeak/BespeakSubmitWindow.aspx?parameters='

19 cj =cookielib.CookieJar()20 opener =urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))21 urllib2.install_opener(opener)22 pre_response=opener.open(Login_URL)23 soup=BeautifulSoup(pre_response.read())24 div=soup.find(id='__EVENTVALIDATION')25 attr1=dict(div.attrs)['value']26 #print attr1

27 div=soup.find(id='__VIEWSTATE')28 attr2=dict(div.attrs)['value']29 #print attr2

30 #login

31 LoginData ={32 'txtUserName':username,33 'txtPassword':password,34 '__EVENTVALIDATION':attr1,35 '__VIEWSTATE':attr2,36 'cmdOK.x':'40',37 'cmdOK.y':'14',38 };39 login_req =urllib2.Request(Login_URL, urllib.urlencode(LoginData));40 login_req.add_header('User-Agent', "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36");41 login_response=opener.open(login_req)42 print 'login success'

43 #get chairinfo

44 while search_seats(day)==False:45 print 'system is not running , waitting'

46 while get_start(Seats_URL,opener)==False:47 print 'try again'

48 print 'Success and enjoy'

49 defget_start(Seats_URL,opener):50 total_chair_args=''

51 i=0;52 while total_chair_args=='' and i

58 if total_chair_args=='':59 print 'All seats has been ordered'

60 returnFalse61 else:62 Seats_URL=Seats_URL+total_chair_args63 print 'starting get seats order info'

64 #get order args by header

65 headers={66 #'X-Requested-With': 'XMLHttpRequest',

67 'Accept-Language': 'zh-cn',68 'Accept-Encoding': 'gzip, deflate',69 #'ContentType': 'application/x-www-form-urlencoded; charset=UTF-8',

70 'Host': '10.21.16.215',71 #'Origin':'http://10.21.16.215',

72 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',73 'Referer' : 'http://10.21.16.215/FunctionPages/SeatBespeak/BespeakSeatLayout.aspx?roomId='+roomNum,74 'Connection' : 'Keep-Alive',75 }76 req = urllib2.Request(Seats_URL,headers=headers);77 response=urllib2.urlopen(req)78 result=response.read()79 #print result

80 #get order info

81 soup=BeautifulSoup(result)82 div=soup.find(id='__EVENTVALIDATION')83 attr1=dict(div.attrs)['value']84 #print attr1

85 div=soup.find(id='__VIEWSTATE')86 attr2=dict(div.attrs)['value']87 #print attr2

88 #get Seats

89 SeatData ={90 '__EVENTTARGET':'ContentPanel1$btnBespeak',91 '__EVENTARGUMENT':' ',92 '__VIEWSTATE':attr2,93 '__EVENTVALIDATION':attr1,94 'roomOpenTime':'8:30',95 'X_CHANGED':'false',96 'X_TARGET':'ContentPanel1_btnBespeak',97 'Form2_Collapsed':'false',98 'ContentPanel1_Collapsed':'false',99 'X_AJAX':'true',100 #'X_STATE':'eyJGb3JtMl9jdGwwMF9sYmxSb29tTmFtZSI6eyJUZXh0Ijoi5LiJ5qW85Y2V5Lq656CU5L+u5a6kIn0sIkZvcm0yX2N0bDAxX2xibFNlYXRObyI6eyJUZXh0IjoiMzEzIn0sIkZvcm0yX2N0bDAyX2xibGJlZ2luRGF0ZSI6eyJUZXh0IjoiMjAxNS0xLTEyIn0sIkZvcm0yX2N0bDAzX2xibEVuZERhdGUiOnsiVGV4dCI6Ijc6MDDoh7MxMDowMCJ9fQ==',

101 };102 headers ={103 'X-Requested-With': 'XMLHttpRequest',104 'Accept-Language': 'zh-cn',105 'Accept-Encoding': 'gzip, deflate',106 'ContentType': 'application/x-www-form-urlencoded; chartset=UTF-8',107 'Host': '10.21.16.215',108 'Origin':'http://10.21.16.215',109 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',110 'Referer':Seats_URL ,111 'Connection' : 'Keep-Alive'

112 }113 result=get_chair_order(SeatData,headers,opener,Seats_URL)114 if result.find('失败')>=0 or get_log()==False:115 returnFalse116 else:117 returnTrue118 #search seats

119 defsearch_seats(datetime):120 postdata={121 '__EVENTTARGET':'Form2$ctl00$btnnewdate',122 '__EVENTARGUMENT':' ',123 '__VIEWSTATE':'/wEPDwUKLTM3MzI4Mzg0MmQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgYFBUZvcm0yBRZGb3JtMiRjdGwwMCRkZGxMaWJyYXJ5BRdGb3JtMiRjdGwwMCRkcFN0YXJ0RGF0ZQUWRm9ybTIkY3RsMDAkYnRubmV3ZGF0ZQUMZ3JpZFJvb21MaXN0BQpXaW5kb3dFZGl05pJoDo97fsj4YPsAfwutGBWhcfnVi5TdDL2VUl7PIH8=',124 'Form2$ctl00$ddlLibrary':'02',125 'Form2$ctl00$dpStartDate':datetime,126 'X_CHANGED':'true',127 'WindowEdit_Hidden':'true',128 'X_TARGET':'Form2_ctl00_btnnewdate',129 'Form2_Collapsed':'false',130 'gridRoomList_Collapsed':'false',131 'gridRoomList_SelectedRowIndexArray':' ',132 'WindowEdit_Collapsed':'false',133 'X_AJAX':'true',134 'X_STATE':'eyJGb3JtMl9jdGwwMF9kZGxMaWJyYXJ5Ijp7IkRhdGFUZXh0RmllbGQiOiJOYW1lIiwiRGF0YVZhbHVlRmllbGQiOiJObyIsIlhfSXRlbXMiOltbIjAxIiwi5rKZ5rKz5qCh5Yy65Zu+5Lmm6aaGIiwxXSxbIjAyIiwi5riF5rC05rKz5qCh5Yy65Zu+5Lmm6aaGIiwxXSxbIjAzIiwi5Zu+5Lmm6aaG5Yib5paw5a6e6aqM5a6kIiwxXV0sIlNlbGVjdGVkVmFsdWUiOiIwMiJ9LCJGb3JtMl9jdGwwMF9kcFN0YXJ0RGF0ZSI6eyJNaW5EYXRlIjoiMjAxNS0wMS0xM1QwMTowNDo1Ni40OTY1KzA4OjAwIiwiVGV4dCI6IjIwMTUtMDEtMTMifSwiZ3JpZFJvb21MaXN0Ijp7IlJlY29yZENvdW50IjozLCJYX1Jvd3MiOnsiVmFsdWVzIjpbWyIyMDIwMDUiLCLkuozmpbzljZXkurrnoJTkv67lrqQiLCLmuIXmsLTmsrPmoKHljLrlm77kuabppoYiLCIyMiIsIjIyIiwiPGEgZXh0OnF0aXA9XCLpooTnuqbml7bpl7TkuLrvvJoxMzowMOWIsDIzOjU5XCIgIGNsYXNzPVwieC1pdGVtLWRpc2FibGVkXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiPjxpbWcgc3JjPVwiL0ltYWdlcy9pY29uL2J1bGxldF9jcm9zcy5wbmdcIiAgZXh0OnF0aXA9XCLpooTnuqbml7bpl7TkuLrvvJoxMzowMOWIsDIzOjU5XCIgIC8+PC9hPiJdLFsiMjAyMDA2Iiwi5LiJ5qW85Y2V5Lq656CU5L+u5a6kIiwi5riF5rC05rKz5qCh5Yy65Zu+5Lmm6aaGIiwiMjQiLCIyNCIsIjxhIGV4dDpxdGlwPVwi6aKE57qm5pe26Ze05Li677yaMTM6MDDliLAyMzo1OVwiICBjbGFzcz1cIngtaXRlbS1kaXNhYmxlZFwiIGRpc2FibGVkPVwiZGlzYWJsZWRcIj48aW1nIHNyYz1cIi9JbWFnZXMvaWNvbi9idWxsZXRfY3Jvc3MucG5nXCIgIGV4dDpxdGlwPVwi6aKE57qm5pe26Ze05Li677yaMTM6MDDliLAyMzo1OVwiICAvPjwvYT4iXSxbIjIwMjAwNyIsIuWbm+alvOWNleS6uueglOS/ruWupCIsIua4heawtOays+agoeWMuuWbvuS5pummhiIsIjQiLCI0IiwiPGEgZXh0OnF0aXA9XCLpooTnuqbml7bpl7TkuLrvvJoxMzowMOWIsDIzOjU5XCIgIGNsYXNzPVwieC1pdGVtLWRpc2FibGVkXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiPjxpbWcgc3JjPVwiL0ltYWdlcy9pY29uL2J1bGxldF9jcm9zcy5wbmdcIiAgZXh0OnF0aXA9XCLpooTnuqbml7bpl7TkuLrvvJoxMzowMOWIsDIzOjU5XCIgIC8+PC9hPiJdXSwiRGF0YUtleXMiOltbbnVsbF0sW251bGxdLFtudWxsXV0sIlN0YXRlcyI6W1tdLFtdLFtdXX19fQ==',135 }136 headers={137 'X-Requested-With': 'XMLHttpRequest',138 'Accept-Language': 'zh-cn',139 'Accept-Encoding': 'gzip, deflate',140 'ContentType': 'application/x-www-form-urlencoded; charset=UTF-8',141 'Host': '10.21.16.215',142 'Origin':'http://10.21.16.215',143 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',144 'Referer' : 'http://10.21.16.215/FunctionPages/SeatBespeak/BespeakSeat.aspx',145 'Connection' : 'Keep-Alive',146 }147 req = urllib2.Request('http://10.21.16.215/FunctionPages/SeatBespeak/BespeakSeat.aspx', urllib.urlencode(postdata),headers);148 response=urllib2.urlopen(req)149 result=response.read()150 if result.find('zoom.png')>=0:151 returnTrue152 else:153 returnFalse154 #out=open('tt.html','w')

155 #out.write(result)

156 #get chair location args

157 defget_chair_info(roomId_):158 print 'start get seats info'

159 room_url='http://10.21.16.215/FunctionPages/SeatBespeak/SeatLayoutHandle.ashx'

160 #datetime=raw_input('input your date of tomorrw(2015-01-13): ')

161 datetime=day162 datetime=datetime+'0:00:00'

163 printdatetime164 postdata={165 'roomNum':roomNum,166 'date':datetime,167 'divTransparentTop':'0',168 'divTransparentLeft':'0'

169 }170 headers={171 'X-Requested-With': 'XMLHttpRequest',172 'Accept-Language': 'zh-cn',173 'Accept-Encoding': 'gzip, deflate',174 'ContentType': 'application/x-www-form-urlencoded;',175 'Host': '10.21.16.215',176 'Origin':'http://10.21.16.215',177 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',178 'Referer' : 'http://10.21.16.215/FunctionPages/SeatBespeak/BespeakSeatLayout.aspx?roomId='+roomNum,179 'Connection' : 'Keep-Alive',180 }181 req =urllib2.Request(room_url, urllib.urlencode(postdata),headers);182 response=urllib2.urlopen(req)183 result=response.read()184 out=open('info.html','w')185 out.write(result)186 soup=BeautifulSoup(result)187 #roomId

188 div=soup.find(id=roomNum+roomId_)189 chair_info=dict(div.attrs)['onclick']190 #print chair_info

191 matchObj=re.search( r'BespeakSeatClick(.∗?)', chair_info, re.M|re.I)192 chair_args=matchObj.group(1)[1:-1]193 #print chair_args

194 returnchair_args195 #print result

196 #get order

197 defget_chair_order(SeatData,headers,opener,Seats_URL):198 seat_req =urllib2.Request(Seats_URL, urllib.urlencode(SeatData),headers);199 seat_response=opener.open(seat_req)200 result=seat_response.read()201 returnresult202 #get chair log

203 defget_log():204 url='http://10.21.16.215/FunctionPages/ReaderLog/SelectBespeakLog.aspx';205 headers={206 #'X-Requested-With': 'XMLHttpRequest',

207 'Accept-Language': 'zh-cn',208 'Accept-Encoding': 'gzip, deflate',209 #'ContentType': 'application/x-www-form-urlencoded; charset=UTF-8',

210 'Host': '10.21.16.215',211 #'Origin':'http://10.21.16.215',

212 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',213 'Referer' : 'http://10.21.16.215/Florms/FormSYS.aspx',214 'Connection' : 'Keep-Alive',215 }216 req = urllib2.Request(url,headers=headers);217 response=urllib2.urlopen(req)218 result=response.read()219 #line = '三楼单人研修室", "304", "已确认", "15-01-10 13:00:18", "15-01-11 08:30:00", "", "在'

220 #print result.find('三楼单人研修室')

221 #matchObj=re.search( r'三楼单人研修室(.*?)08:30:00', result, re.M|re.I)

222 #print matchObj.group(1)

223 p=re.compile(r'"三楼单人研修室"(.*?)08:30:00')224 #print p.findall(result)[-1]

225 flag=p.findall(result)[-1].find('已取消')226 if flag>=0:227 returnFalse228 else:229 returnTrue230

231 if __name__=='__main__':232 login()

最后

以上就是阔达芒果为你收集整理的python图书馆预约系统_【转载】Python实现图书馆预约功能的全部内容,希望文章能够帮你解决python图书馆预约系统_【转载】Python实现图书馆预约功能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部