세이브
게시글 주소: 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 답글 달기 신고 -
-
펩시 제로 모히또 1+1 행사 안하는거 킹받네 .. 0 0
진짜 젤 맛있는 콜라만 쏙 빼놓고 1+1 하는거 실화냐 ... ?
-
휴가 ON. 0 0
-
아르헨 스페인 결승 0 0
고트시여.. 진짜 고트셨던 겁니까..
-
풀세트로 푼 건 아니지만.. 효용 극대화 문제 2분안쪽 합리적 선택 문제 1분...
-
운동끝 0 0
파워풀대구 기습목격
-
스페인 그냥 잘하네 0 0
약간 그냥 뭔가 잘해서 노잼임
-
견고한 수비인가보다
-
그냥 프랑스가 못했음
-
특히 수비
-
제미나이 이새끼 또 왜이래 1 0
답변도 저능아같이 해주는 주제에 뻑하면 튕기고 난리야
-
스페인 미친 2:1패스로 골 3 0
너무 잘하네 진짜
-
카투사 기원 7일차 0 0
-
덥고끈적해서잠을못자겟어 0 0
주글게..
-
어우 졸려 0 0
-
아 2 0
-
요즘 되는일도 없고 개예민하네 4 1
어이없는 상황 생겨서 관련인이랑 이 시간에 받을때까지 전화해서 따지고옴 ㅅㅂ진짜 하 되는일이 ㅋㅋ
-
스페인 선제골 3 2
라민야말이 pk를 얻어냈고 오야르사발의 골
-
얼버기 6 1
ㅇㅇㅈ
-
반수 고민중입니다ㅠㅠ 2 0
수능끝나고 공부 하나도 안하고 술퍼마시다가 시간재고 7모 확통 풀어봤는데...
-
마지막 수능 볼듯 1 1
안보면 아쉬울 것 같음... 4년간 축적된 감으로 봐야겠다
-
서울 살다가 인천 이사왔는데 인천사람들은 왤케 미개한것같지 5 0
인천 지하철 타다보면 무례한 인간들 존나 많은것 같음 어깨빵 갈기는 놈부터...
-
다들 굿나잇 1 0
전설의 루시드 ETF보다가 결국 자러갑니다
-
산타할아버지는 4 0
알고계신대요!
-
이비츠데모이이~ 1 0
-
이번시즌 토트넘 기대된다 0 0
토날리에 마페까지 데려오고 챔스는 가겠지
-
잉글랜드만 올라가면 됨 1 4
내 시나리오는 잉글랜드 우승->해리케인 발롱도르 수상->만족한 케인이 토트넘 복귀 딱 각 보인다
-
특이점이 올 것이며 0 2
내겐 기본소득이 내려올 것이므로 공부를 포기한다
-
일단 3:1 프랑스 승 예상
-
현재 국어6등급인데 0 1
22년 9모, 25년 9모 같은거로 연습해보는게 낫겠지??
-
1컷 100 2컷 96 3컷 90 4컷 83 5컷 7x 6컷 55 7컷 30 아니...
-
안정적인 삶을 영위하고싶다 0 0
고용 안정성이 필요해
-
?
-
가끔씩 0 1
다부질없는것만같아서 의욕이쭉쭉떨어지는데 이게다더운날씨때문임..
-
오노추 1 0
오늘 나온 존나 따끈따끈한 신곡 많관부
-
치토스 쳐먹기 실시 0 0
와 캬 퍄 ㅋㅋ
-
이번경기 재밌으려나 2 0
그러면 라면먹으면서 보고
-
오루비 굿나잇 1 1
코코낸내
-
지금 정품 쓰니까 카르마 청산임..ㅇㅇ
-
월드컵 4강 전 예측 이벤트 1 0
https://orbi.kr/00078920244/%EC%9B%94%EB%93%9C%...
-
고전소설 풀기 vs 언매 풀기 0 0
ㅃㄹㅃㄹ
-
무신론자에 가깝지만 종교가 있다는 건 참 좋은 거 같음 3 1
나도 어떤 신에대한 굳은 믿음을 갖고싶을 정도임 자기가 믿는 신의 뜻에 따라...
-
근데 나는 개를 무서워함
-
대선 총선 지선 중요도 순위가 2 0
대>총>>>>지 맞음?
-
학교네번가면 1 2
방학
-
다양한 사람들을 만나 봐야함 12 1
뭐 서울대니 고려대니 의치한이니 말고 다양한 1등급 부터 9등급까지 다양한 사람을...
-
요즘보카로 뭐들으시나요 6 3
요즘곡 추천
-
자러갈게 5 1
잘자
-
달린다 3 0
배고픈거 못참겠다 까까내놔 편의점으로 출동
-
전 작년에 꿈이 3번이나 바뀜요 17 0
교수 > 검사 > 약사 지금은 ?? 서울대의대생
-
이시간에 장보는 사람 실존 0 0
에