PRAW သည် SOCKS ကို သိသော Requests session ကို လက်ခံသည်
PRAW ၏ requestor ကို ပြင်ဆင်ထားသော Requests session ပေးပါ၊ SOCKS ဆာဗာက Reddit ၏ ပန်းတိုင်အမည်များကို ဖြေရှင်းရမည့်အခါ socks5h ကို အသုံးပြုပါ။
requestor_kwargs မှတစ်ဆင့် PRAW 8.0.3 ကို SOCKS ကို သိသော Requests session ပေးပါ:
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 instance မှတစ်ဆင့် API ခေါ်ဆိုမှုများ ပြုလုပ်ပါ။ ၎င်း၏ requestor နှင့် session ကို အက်ပ်၏ ပုံမှန် ရှင်းလင်းမှုဖြင့် စီမံပါ။
Requests သည် ၎င်း၏ SOCKS ပံ့ပိုးမှု လိုအပ်သည်။ socks5h သည် ပန်းတိုင်အမည် ဖြေရှင်းမှုကို proxy ထံ အပ်နှင်းသည်; socks5 သည် ဒေသတွင်း ဖြေရှင်းသည်။
SOCKS5 proxy စာရင်းမှ အများသုံး endpoint တစ်ခုသည် ဤမြေပုံရှိ လိပ်စာကို ပေးနိုင်သည်။ ဦးစွာ Session() ကို ဖန်တီးပြီး ပြထားသည့်အတိုင်း ၎င်း၏ proxies ဂုဏ်ရည်ကို အပ်ဒိတ်လုပ်ပါ။ ၎င်း၏ constructor တွင် proxies သော့ချက်စကားလုံး မရှိပါ။
ပေးထားသော session သည် Requests ၏ ပတ်ဝန်းကျင် ပေါင်းစပ်မှုကို ထိန်းသိမ်းထားသောကြောင့် အမွေဆက်ခံထားသော proxy နှင့် bypass ဆက်တင်များသည် လမ်းကြောင်း ရွေးချယ်မှုကို သက်ရောက်နိုင်သည်။ အက်ပ်ပိုင် လမ်းကြောင်းအပြည့်အစုံအတွက် trust_env ကို ပြန်လည်သုံးသပ်ပါ။ ၎င်းကို ပိတ်ခြင်းသည် ယခင်က ထိုပတ်ဝန်းကျင်မှ ရောက်လာသော ယုံကြည်မှုနှင့် အတည်ပြုမှု ထည့်သွင်းချက်များကိုပါ ပေးရန် လိုအပ်သည်။