requestor_kwargs를 통해 PRAW 8.0.3에 SOCKS 인식 Requests 세션을 제공합니다:

import praw
import requests

session = requests.Session()
session.proxies.update({
    'http': 'socks5h://proxy.example:1080',
    'https': 'socks5h://proxy.example:1080',
})
reddit = praw.Reddit(
    client_id=client_id,
    client_secret=client_secret,
    user_agent=user_agent,
    requestor_kwargs={'session': session},
)

애플리케이션의 Reddit 자격 증명과 user agent를 사용한 뒤 이 reddit 인스턴스로 API를 호출합니다. requestor와 세션은 애플리케이션의 일반적인 정리 절차로 관리합니다.

Requests는 자체 SOCKS 지원이 필요합니다. socks5h는 대상 이름 해석을 프록시에 위임하고, socks5는 로컬에서 해석합니다.

SOCKS5 프록시 목록의 공개 엔드포인트가 이 맵의 주소를 제공할 수 있습니다. 먼저 Session()을 만들고 표시된 대로 proxies 속성을 갱신합니다. 생성자에는 proxies 키워드가 없습니다.

제공된 세션은 Requests의 환경 통합을 유지하므로 상속된 프록시 및 바이패스 설정이 경로 선택에 영향을 줄 수 있습니다. 애플리케이션이 완전히 소유하는 경로를 원하면 trust_env를 검토합니다. 이를 비활성화하려면 이전에 해당 환경에서 가져온 신뢰 및 인증 입력도 함께 제공해야 합니다.

관련 글