PRAW가 SOCKS 인식 Requests 세션을 받아들인다
PRAW의 requestor에 구성된 Requests 세션을 제공하고, SOCKS 서버가 Reddit의 대상 이름을 해석해야 할 때 socks5h를 사용합니다.
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를 검토합니다. 이를 비활성화하려면 이전에 해당 환경에서 가져온 신뢰 및 인증 입력도 함께 제공해야 합니다.