세이브
게시글 주소: https://orbi.kr/00075398714
import asyncio
import aiohttp
import urllib.parse
import logging
from typing import Dict, Any
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s')
logger = logging.getLogger(__name__)
USERNAME = ''
PASSWORD = ''
URL_TARGET = 'https://orbi.kr/amusement/lottery/buy_ticket'
URL_LOGIN = 'https://login.orbi.kr/login'
BATCH_SIZE = 30
WAIT_AFTER_BATCH_SEC = 70
LOGIN_REDIRECT_URL = 'https://orbi.kr/amusement/lottery'
batching_enabled = True
batch_counter = 0
global_session: aiohttp.ClientSession = None
async def perform_login(session: aiohttp.ClientSession) -> bool:
logger.info("Attempting login...")
login_data = {
'url': LOGIN_REDIRECT_URL,
'username': USERNAME,
'password': PASSWORD,
}
headers = {
'Accept': '*/*',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Referer': f'https://login.orbi.kr/login?url={urllib.parse.quote(LOGIN_REDIRECT_URL, safe="")}',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
}
try:
async with session.post(URL_LOGIN, data=login_data, headers=headers) as response:
logger.info(f"Login response status: {response.status}")
if response.status in [200, 302]:
logger.info("Login successful.")
return True
else:
logger.error(f"Login failed. Status code: {response.status}")
return False
except Exception as e:
logger.error(f"Error during login: {e}")
return False
async def delay_next_cycle(from_batch: int):
global batching_enabled
if not batching_enabled:
return
logger.info(f"[CYCLE {from_batch}] Waiting {WAIT_AFTER_BATCH_SEC} seconds...")
await asyncio.sleep(WAIT_AFTER_BATCH_SEC)
if not batching_enabled:
return
logger.info(f"[CYCLE {from_batch}] Wait complete. Continuing...")
async def send_batch(session: aiohttp.ClientSession):
global batch_counter
global batching_enabled
if not batching_enabled:
return
batch_counter += 1
this_batch = batch_counter
logger.info(f"\n[CYCLE {this_batch}] Sending {BATCH_SIZE} parallel requests.")
request_headers = {
'Accept': '*/*',
'Referer': 'https://orbi.kr/amusement/lottery',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
}
async def make_request(i):
try:
async with session.post(URL_TARGET, headers=request_headers, data={}) as resp:
return {'ok': resp.ok, 'status': resp.status}
except Exception as err:
return {'error': str(err)}
tasks = [make_request(i) for i in range(BATCH_SIZE)]
results = await asyncio.gather(*tasks, return_exceptions=False)
success_count = sum(1 for r in results if 'ok' in r and r['status'] == 200)
failed_count = sum(1 for r in results if 'error' in r or ('ok' in r and r['status'] != 200))
summary = {'Total': len(results), 'Success (200)': success_count, 'Failed/Error': failed_count}
logger.info(f"[CYCLE {this_batch}] Batch complete. Summary: {summary}")
await delay_next_cycle(this_batch)
async def main_execute():
global global_session
async with aiohttp.ClientSession() as session:
global_session = session
if not await perform_login(session):
logger.error("Login failed. Stopping routine.")
return
logger.info("Login successful. Starting loop.")
while batching_enabled:
await send_batch(session)
logger.info("Routine stopped by user command.")
if __name__ == "__main__":
try:
logger.info("sc/2 loaded. Starting routine.")
asyncio.run(main_execute())
except KeyboardInterrupt:
logger.info("Routine stopped by keyboard interrupt.")
except Exception as e:
logger.error(f"Unexpected error: {e}")
출처: 하량이
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
좋아요 1 답글 달기 신고 -
좋아요 1 답글 달기 신고 -
-
4명뽑는 극소수과 1 0
진학사 7칸 1등이어도 불안불안하면서 넣어야할까요
-
수능전엔오르비하지말기 4 0
안그래도 불안한데 불안한 애들끼리 모여있으니까 더불안함
-
수시를 적폐로 만드는 주범 4 0
내가 ㅈ반고 원하는데도 ㅈ반고 못가게 막아버리는 "근거리배정" <<<< 이새끼가...
-
제발 이상한 과탐하지말고 ㅠㅠㅠ 중대목표로 달려
-
설맞이 n제? 실모? 4 0
설맞이는 엔젠가요 실모인가요 아님 둘 다 있나요?
-
김범준 스블 어떰? 12 0
본인 그래도 나름 작수 올9 미적 92인데 반수하면서 들을 생각임, 스블에서...
-
근데 무슨대학 무슨과 갈지 7 1
목표를 미리정해야함? 수능성적 나오고 정하면 늦나.
-
[총정리글 예고] 시대인재 vs 잇올 vs 러셀 vs 그린램프? 독재 vs 재종? 걸어놓기 vs 쌩재수 vs 반수? 14 7
안녕하세요 2024년 1월에 잇올과 그린램프를 비교하는 글을 작성해서 올렸던 오르비...
-
오르비 검색어 우리 엄마 뭐임 7 1
진짜 뭐지
-
홍대 세종대 단국대 4 1
여기 세 곳은 논술 꼭 넣는당
-
영어 단어 외우는 꿀팁좀요 8 0
1시간에 40개도 못 외우는 이디엇이 여기ㅜ있습니다;;;
-
삼반수해서 실패하면 1 0
군대로 런해서 군대에서 수능치고 있을거 같은데 ㅋㅋㅋ 그냥 미미미눈데..
-
나도 바다가고싶다 6 0
같이 갈 오르비언구함
-
물리가 수학보다 훨씬어려운듯 1 0
시발 문과 갈걸..
-
나도 기만이라는거 하고 싶다 3 0
그러니까 이번에 꼭 합격해야해
-
국어 공부법 전반적으로 도움주실분ㅜ? 14 0
국어 평가원 만년 3,4등급인 재수생입니다 재수 초반엔 교육청이나 더프 높2까지도...
-
ㅅㅂ 말안되는데 왤케 높아 이러다가 725도 뚫는거 아니겠지
-
우리학교만 3학년들 정상 등교임? 집갈때도 원래시간에 가던데