Python Requestsನಲ್ಲಿ ಪ್ರಾಕ್ಸಿ IP ಬಳಸುವುದು
Requestsನಲ್ಲಿ ಪ್ರತಿ ವಿನಂತಿಗೆ ಸ್ಪಷ್ಟ ಪ್ರಾಕ್ಸಿ ಮಾರ್ಗಗಳನ್ನು ನೀಡಿ, ಸರಿಯಾದ ಎಂಡ್ಪಾಯಿಂಟ್ ಸ್ಕೀಮ್ ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಟೈಮ್ಔಟ್ ಹಾಗೂ HTTPS ಸುರಂಗದ ವೈಫಲ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಿ.
ಪ್ರಾಜೆಕ್ಟ್ನಲ್ಲಿ Requests ಲಭ್ಯವಿದ್ದರೆ ಕರೆಗೆ ಪ್ರಾಕ್ಸಿ ಮ್ಯಾಪಿಂಗ್ ನೀಡಿ:
import requests
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)
ಲೂಪ್ಬ್ಯಾಕ್ ಎಂಡ್ಪಾಯಿಂಟ್ ಬದಲು ನಿಮ್ಮ ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಾಕ್ಸಿ ಅಥವಾ ಈ ವಿನಂತಿಯಿಂದ ಪರೀಕ್ಷಿಸುವ HTTP ಪ್ರಾಕ್ಸಿಗಳ ಪಟ್ಟಿಯ ಆಯ್ಕೆಯನ್ನು ನೀಡಿ. ಕೀಗಳು ಗಮ್ಯಸ್ಥಾನದ ಸ್ಕೀಮ್ ತಿಳಿಸುತ್ತವೆ: HTTP URLಗಳಿಗೆ http ಮತ್ತು HTTPS URLಗಳಿಗೆ https. ಮೌಲ್ಯಗಳು ಪ್ರಾಕ್ಸಿ ಲಿಸನರ್ ತಿಳಿಸುತ್ತವೆ. ಜಾಲಕ್ಕೆ ಪ್ರತ್ಯೇಕ ಮಾರ್ಗಗಳು ಬೇಕಿದ್ದರೆ ಬೇರೆ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳಾಗಿರಬಹುದು.
http:// ಪ್ರಾಕ್ಸಿ ಮೌಲ್ಯವು https ಕೀ ಅಡಿಯಲ್ಲಿ ಇರುವುದು ಉದ್ದೇಶಿತ. Requests HTTP ಲಿಸನರ್ನಿಂದ CONNECT ಸುರಂಗ ಕೇಳಿ, ಬಳಿಕ ಪ್ರಾಕ್ಸಿಯ ಗಮ್ಯಸ್ಥಾನ ಮತ್ತು ಪೋರ್ಟ್ ನೀತಿಗೆ ಒಳಪಟ್ಟು ಅದರ ಮೂಲಕ ಗಮ್ಯಸ್ಥಾನದ TLS ಸ್ಥಾಪಿಸುತ್ತದೆ. ಮೌಲ್ಯವನ್ನು https:// ಮಾಡಿದರೆ ಪ್ರಾಕ್ಸಿಗೇ TLS ಕೇಳುತ್ತದೆ; ಲಿಸನರ್ಗೆ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡದ HTTP ಬೇಕಿದ್ದರೆ ವಿಫಲವಾಗಬಹುದು.
ಎರಡು ಟೈಮ್ಔಟ್ ಸಂಖ್ಯೆಗಳ ಅರ್ಥ
timeout=(5, 15) ಸಂಪರ್ಕ ಮತ್ತು ಓದುವಿಕೆಯ ಟೈಮ್ಔಟ್ಗಳನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ. ಇದು ಒಟ್ಟಾರೆ ಹದಿನೈದು ಸೆಕೆಂಡ್ ಗಡುವಲ್ಲ. ಆಗಾಗ ಬರುವ ಡೇಟಾ, ಅನೇಕ ವಿಳಾಸಗಳು ಮತ್ತು ಸಂಪರ್ಕ ಪ್ರಯತ್ನಗಳು ಕಳೆದ ಸಮಯ ಹೆಚ್ಚಿಸಬಹುದು. ಈ ಸೆಟ್ಟಿಂಗ್ ಬಿಟ್ಟರೆ Requests ಸಾಮಾನ್ಯ ಟೈಮ್ಔಟ್ ನೀಡುವುದಿಲ್ಲ. ಪ್ರತಿಕ್ರಿಯೆಗೆ ಸೂಕ್ತ ಮಿತಿ ಆರಿಸಿ, ಕೆಲಸಕ್ಕೆ ಕಟ್ಟುನಿಟ್ಟಾದ ಒಟ್ಟು ಸಮಯ ಅಗತ್ಯವಿದ್ದರೆ ಅಪ್ಲಿಕೇಶನ್ ಮಟ್ಟದ ಗಡುವು ಸೇರಿಸಿ.
ವೈಫಲ್ಯವಾಗುವ ಹಂತದಲ್ಲಿಯೇ ನಿರ್ವಹಿಸಿ
try:
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
except requests.exceptions.ProxyError as error:
print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
print("HTTP status:", error.response.status_code)
ತಿರಸ್ಕೃತ CONNECT ಗಮ್ಯಸ್ಥಾನದ ಪ್ರತಿಕ್ರಿಯೆ ಬರುವ ಮೊದಲೇ ProxyError ಉಂಟುಮಾಡಬಹುದು. HTTPError ಶಾಖೆಯು ದೋಷ ಸ್ಥಿತಿಯ ಪ್ರತಿಕ್ರಿಯೆ ಸ್ವೀಕರಿಸಿದ ನಂತರ ಬರುತ್ತದೆ; Timeout ಎಂದರೆ ನಿಗದಿತ ಮಿತಿ ಮುಗಿದಿದೆ. ಸಂಪರ್ಕ ಸ್ಥಾಪನೆಯ ಎಕ್ಸೆಪ್ಷನ್ ಸರಪಳಿಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಪರಿಶೀಲಿಸಿ, ಹಂಚುವ ಮೊದಲು ರುಜುವಾತುಗಳಿರುವ ಎಂಡ್ಪಾಯಿಂಟ್ ಮತ್ತು ಖಾಸಗಿ URLಗಳನ್ನು ತೆಗೆದುಹಾಕಿ.
ಪ್ರಮಾಣಪತ್ರ ಪರಿಶೀಲನೆಯನ್ನು ಸಕ್ರಿಯವಾಗಿ ಬಿಡಿ. ಅಧಿಕೃತ ಜಾಲವು ಖಾಸಗಿ CA ಅಥವಾ ನಿರ್ವಹಿಸಲಾದ ಇಂಟರ್ಸೆಪ್ಷನ್ ಬಳಸಿದರೆ ಪರಿಶೀಲನೆ ನಿಲ್ಲಿಸದೆ ನಿರೀಕ್ಷಿತ ವಿಶ್ವಾಸ ಸಾಮಗ್ರಿ ನೀಡಿ.
ಪ್ರತಿ ವಿನಂತಿಯ ಸ್ಪಷ್ಟ ನಮೂದುಗಳು ಇಲ್ಲಿ ನೀಡಿದ ಮಾರ್ಗಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತವೆ; ಬಿಟ್ಟ ಸ್ಕೀಮ್ಗಳ ಮೇಲೆ ಪರಿಸರದ ಪ್ರಾಕ್ಸಿ ಪತ್ತೆ ಇನ್ನೂ ಪರಿಣಾಮ ಬೀರಬಹುದು. ಕರೆಯನ್ನು ಮರುಬಳಕೆಯ Sessionಗೆ ಸಾಗಿಸುವಾಗ ಪರಿಸರ ವೇರಿಯಬಲ್ಗಳು, Session ಡಿಫಾಲ್ಟ್ಗಳು ಮತ್ತು ವಿನಂತಿಯ ಓವರ್ರೈಡ್ಗಳು ಹೇಗೆ ಪರಸ್ಪರ ಕೆಲಸ ಮಾಡಬೇಕು ಎಂದು ತೀರ್ಮಾನಿಸಿ; ಸಂಪರ್ಕ ಮರುಬಳಕೆ ಮತ್ತು ಮಾರ್ಗ ನೀತಿ ಪ್ರತ್ಯೇಕ ಆಯ್ಕೆಗಳು.