세이브
게시글 주소: 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 답글 달기 신고 -
-
아니 이건 또 뭐임..? 6 0
슈냥님한테 안녕하세요슈"냥@쌤" 이라고 댓 달려고 했는데 빠꾸먹음...
-
볼만한거 추천좀 10 0
애니든 드라마든 영화든..심심타
-
근데 1섶 다른건 모르겟는데 11 3
한국사가어려움 생전 봤던 학평/수능형식 시험지중에 제일 난이도 높앗음...
-
공부시작할게 1 0
오늘 공부하는ㄴ동안은 쉰느시간에 인스타빼고 커뮤 안들어와야지 열심히하께
-
양성피드백을어떡하면좋니 3 1
-
님들 급양만와 <<< 이사람 앎?? 13 3
진짜 ㅈㄴ웃김 꼭보셈 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ...
-
형 아직도 안잔다 5 0
-
계약학과 지금 입결 저점인거 같음 13 3
저는 최소 한의대는 넘어야된다고 봄
-
이 게임 하지마세요 13 2
모바일임 ㅇㅇ ㄹㅇ 장난하나
-
디엠이나 카톡할때 14 1
등등 특히 위에거 두개 적재적소에 잘 쓸수있는데 없어서 아쉬운적이 많았음
-
이새끼는왜자꾸시비거는거임 12 5
(평화로운 어느 날...) (다음날..)
-
밤새면 붓기빠진거 유지됨? 10 1
낼 학교가는데 부은상태로 가긴싫어서
-
그게 나야 쓔갈
-
금융섹터들 차트 6 1
근 몇년동안 정책적인 영향때문에 은행주들 실적이 되게 좋아서 차트도 잘나왔음뇨 한국...
-
과외로 돈벌어보고싶음 10 1
나정도면 잘 가르치지않을까 이마인드
-
쌀밥과 결혼시켜줬음
-
서연고 성한경 로스쿨 라인에서는리트 점수랑 학점이 같다는 전제에서 난이도 차이가 클까요?
-
근데 다들 때 되니까 수능 공부하러 가긴 하는구나 8 4
1~2달 전만 해도 새르비 화력 말도안됐는데 요즘 되니까 새르비 개망함
-
5월초중순 입대인데 입학시기도 안꼬이고 s급 입대 시기인가요? 제대는 내년...