import requests from requests.adapters import HTTPAdapter from urllib3.util import Retry def make_requests_session(retries=3, backoff_factor=0.5, status_forcelist=(429, 500, 502, 503, 504)): """ 재시도(backoff)를 적용한 requests.Session 반환 """ session = requests.Session() retry = Retry( total=retries, read=retries, connect=retries, backoff_factor=backoff_factor, status_forcelist=status_forcelist, allowed_methods=frozenset(["HEAD", "GET", "OPTIONS", "POST"]) ) adapter = HTTPAdapter(max_retries=retry) session.mount("https://", adapter) session.mount("http://", adapter) return session