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 ಗುರಿಯ ಸವಾಲನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಸಂರಚಿಸಿದ ಎರಡು ಖಾತೆಗಳಲ್ಲಿ ಯಾವುದಕ್ಕೆ ಗಮನ ಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಆ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಬಳಸಿ.