Python Requests: ਪ੍ਰੌਕਸੀ ਅਤੇ ਵੈੱਬਸਾਈਟ ਲਈ ਵੱਖਰੇ Basic ਲੌਗਇਨ
ਪ੍ਰੌਕਸੀ ਦਾ Basic ਲੌਗਇਨ ਉਸ ਦੇ URL ਰਾਹੀਂ ਅਤੇ ਟਾਰਗਿਟ ਵੈੱਬਸਾਈਟ ਦਾ Basic ਲੌਗਇਨ Requests ਦੇ auth ਆਰਗਿਊਮੈਂਟ ਰਾਹੀਂ ਦਿਓ।
ਦਫ਼ਤਰ ਦੀ ਪ੍ਰੌਕਸੀ ਇੱਕ ਖਾਤਾ ਮੰਗਦੀ ਹੈ। ਉਸ ਪਿੱਛੇ ਦੀ ਵੈੱਬਸਾਈਟ ਦੂਜਾ ਮੰਗਦੀ ਹੈ। Requests ਕੋਲ ਉਹਨਾਂ ਦੋ Basic ਲੌਗਇਨਾਂ ਲਈ ਵੱਖਰੇ ਇਨਪੁੱਟ ਹਨ: ਪ੍ਰੌਕਸੀ URL ਵਿੱਚਲੇ ਪ੍ਰਮਾਣ ਅਤੇ ਬੇਨਤੀ ਦਾ auth ਆਰਗਿਊਮੈਂਟ।
from urllib.parse import quote
import requests
proxy_url = (
f"http://{quote(proxy_user, safe='')}:"
f"{quote(proxy_password, safe='')}@proxy.example:8080"
)
response = requests.get(
"https://reports.example/private/",
proxies={"https": proxy_url},
auth=(site_user, site_password),
timeout=(5, 20),
)
response.raise_for_status()
ਚਾਰੇ ਖਾਤਾ ਵੇਰੀਏਬਲ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਪ੍ਰਮਾਣ ਕਾਨਫਿਗਰੇਸ਼ਨ ਤੋਂ ਆਉਂਦੇ ਹਨ। ਪ੍ਰੌਕਸੀ ਦਾ ਵਰਤੋਂਕਾਰ ਨਾਮ ਅਤੇ ਪਾਸਵਰਡ ਵੱਖਰੇ ਤੌਰ ਤੇ ਐਨਕੋਡ ਕਰਨਾ at ਚਿੰਨ੍ਹ ਵਰਗੇ ਅੱਖਰਾਂ ਨੂੰ URL ਵਿਭਾਜਕਾਂ ਵਿੱਚ ਬਦਲੇ ਬਿਨਾਂ ਸੰਭਾਲਦਾ ਹੈ।
ਸ਼ਬਦਕੋਸ਼ ਦੀ https ਕੁੰਜੀ HTTPS ਟਾਰਗਿਟ ਲਈ ਇਹ ਰਾਹ ਚੁਣਦੀ ਹੈ। ਇਸ ਦਾ ਮੁੱਲ ਅਜੇ ਵੀ http:// ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਸ ਉਦਾਹਰਨ ਪ੍ਰੌਕਸੀ ਤੱਕ ਪਹੁੰਚਣ ਲਈ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਪ੍ਰੋਟੋਕੋਲ ਉਹੀ ਹੈ।
ਉਸ HTTPS ਬੇਨਤੀ ਲਈ ਪ੍ਰੌਕਸੀ ਲੌਗਇਨ CONNECT ਅਦਲ-ਬਦਲ ਦਾ ਹਿੱਸਾ ਹੈ। ਵੈੱਬਸਾਈਟ ਲੌਗਇਨ ਸਥਾਪਿਤ ਸੁਰੰਗ ਰਾਹੀਂ ਜਾਣ ਵਾਲੀ ਅਗਲੀ ਬੇਨਤੀ ਦਾ ਹਿੱਸਾ ਹੈ। ਐਡਾਪਟਰ ਨੂੰ ਆਪਣੇ URL ਤੋਂ ਪ੍ਰੌਕਸੀ ਅਧਿਕਾਰ ਲੈਣ ਦੇਣ ਨਾਲ ਉਹ ਸੰਬੰਧਿਤ ਹੌਪ ਉੱਤੇ ਹੀ ਰਹਿੰਦਾ ਹੈ; ਇਸ Basic ਮਾਮਲੇ ਲਈ ਕੋਈ ਸੰਯੁਕਤ ਪ੍ਰਮਾਣਿਕਤਾ ਕਲਾਸ ਲੋੜੀਂਦੀ ਨਹੀਂ।
407 ਵਿਚੋਲੇ ਦੀ ਚੁਣੌਤੀ ਦਰਸਾਉਂਦਾ ਹੈ। ਵੈੱਬਸਾਈਟ ਤੋਂ ਆਇਆ 401 ਟਾਰਗਿਟ ਦੀ ਚੁਣੌਤੀ ਦਰਸਾਉਂਦਾ ਹੈ। ਦੋਵਾਂ ਕਾਨਫਿਗਰ ਕੀਤੇ ਖਾਤਿਆਂ ਵਿੱਚੋਂ ਕਿਸ ਉੱਤੇ ਧਿਆਨ ਦੇਣਾ ਹੈ, ਇਹ ਤੈਅ ਕਰਨ ਲਈ ਉਹੀ ਜਵਾਬ ਵਰਤੋ।