pythonは図書館の席奪い(自動予約)機能の実例コードを実現します。


スクリプト機能
システムオープン席の場合は指定席を素早く予約します。
予約の時間帯は設定できます。
運転後はずっと奪ってあげますので、手動で停止してください。
もっと強いシナリオに出会っても自動的に席を取ります。
実現する
まず登録問題を解決して、F 12で登録要求パケットを探し出して、カバンを分析してみると、一般的にユーザー名とパスワードというパラメータだけが変化しています。その後、requests.session()の実例化で登録インターフェースを要求して登録に成功しました。
席を予約してカバンをつかんで、分析カバンは変化の肝心なパラメーターを見つけます。普通は肝心なパラメーターは席ID、開始時間、終了時間だけあります。他のパラメーターはそのまま運んでいいです。次に登録したばかりのrequests.session()の実例で要求すればいいです。
最適化
毎日奪い取ってくれるなら、ずっとお願いしてもいいです。一つはサーバーに負担をかけることです。もう一つは何か反対行動があったら、封鎖されやすいです。ですから、毎日12時まで(システム予約開放時間)に予約カバンを送ればいいです。
万が一台本がぶつかって、自分の指定した席を取れなかったらどうしますか?予約に戻った結果、次の席を自動予約した人がいます。自分の好きな席をリストに書いてもいいです。これは奪いきれません。
コード
(学校のシステムに負担をかけないため、コードは参考のみで、直接運行できません。)

import requests
from datetime import date
from datetime import timedelta
import json
import getopt
import sys
import time
 
global headers
headers = {
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0',
 'Host': '',
 
}
 
#    
def login(id, pwd):
 
 l_params = {
 'id': id,
 'pwd': pwd,
 'act': 'login',
 }
 #         ,  
 login_url = ''
 s = requests.session()
 re = s.post(url=login_url, headers=headers, params=l_params)
 #         
 return s
 
#    
def yd(s, start, end, s_id):
 y_params = {
 "dialogid": "",
 #    
 "dev_id": s_id,
 "room_id":"",
 "type":"dev",
 "prop":"",
 "number":"",
 "classkind":"",
 "test_name":"",
 "start": start,
 "end": end,
 "start_time": "800",
 "end_time": "2200",
 }
 y_url = ''
 re = s.get(url=y_url, headers=headers, params=y_params)
 print(re.text)
 res = json.loads(re.text)
 msg = res['msg']
 if msg == '    !':
 print('success')
 return 1
 elif msg == '2020-09-11    [1]   ':
 return 0
 else:
 print('fail')
 return 2
 
#        
def useage():
 print(
	'''
	Usage:
	 -i   (  )
	 -p   
	 -s   id
	 -b     ,  13:00,  
	 -e     
	''')
 
if __name__ == '__main__':
 id = pwd = None
 #                 
 s_id = '100458282'
 begin = '8:00'
 end = '22:00'
 
 #    
 try:
 opts, args = getopt.getopt(sys.argv[1:], 'i:p:s:b:e:')
 for name, value in opts:
  if name == '-i':
  id = value
  if name == '-p':
  pwd = value
  if name == '-s':
  s_id = value
  if name == '-b':
  begin = value
  if name == '-e':
  end = value
 except getopt.GetoptError:
 useage()
 if not id:
 useage()
 sys.exit(3)
 if not pwd:
 pwd = id
 
 #       
 aftertomorrow = date.isoformat(date.today() + timedelta(days=2))
 while True:
 hour = int(time.strftime('%H',time.localtime(time.time())))
 m = int(time.strftime('%M', time.localtime(time.time())))
 #              ,   12 ,    
 if date.isoformat(date.today() + timedelta(days=1)) == aftertomorrow:
 
  s = login(id, pwd)
 
  start = aftertomorrow + ' ' + begin
  endtime = aftertomorrow + ' ' + end
  result = yd(s, start, endtime, s_id)
 
  if result == 1:
  #    
  aftertomorrow = date.isoformat(date.today() + timedelta(days=2))
  sleep_time = (23 - hour) * 3600 + (59 - m) * 60 + 35
  print('    {}s'.format(sleep_time))
  print(aftertomorrow)
  time.sleep(sleep_time)
 
  elif result == 2:
  #   ,    id   
  s_id = str(int(s_id) - 1)
  continue
  else:
  continue
 else:
  sleep_time = (23 - hour) * 3600 + (59 - m) * 60
  time.sleep(sleep_time)
おわりに
あなた達の学校の図書館の予約システムはどうなっているか分かりませんが、普通の学校でもあまりお金を使わずにこれをやっています。だから、システムはごみを比較しています。また、一部の学校では私たちの学校とほぼ同じシステムを使っています。必ず同じ会社や同じテンプレートから来ています。あなた達の学校も似たようなシステムなら、コードを変えて使えます。
私の学校のシステムのホームページは大体こんなに長いです。

ここでは、pythonが図書館の席取り(自動予約)機能を実現するためのコード例についての記事を紹介します。python図書館の予約内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。