ప్రాక్సీ పాస్వర్డ్లలో ప్రత్యేక అక్షరాలు
@, కోలన్, స్లాష్, # URL పాడుచేయకుండా ప్రాక్సీ వినియోగదారు పేరు, పాస్వర్డ్ను విడిగా ఎన్కోడ్ చేయండి.
ప్రవేశ వివరాలు సరైనవైనా @ లేదా # ఉన్న పాస్వర్డ్ చేతితో నిర్మించిన ప్రాక్సీ URL పాడుచేయవచ్చు. ఈ అక్షరాలకు URL లో ఇప్పటికే అర్థం ఉంది; అందువల్ల క్లయింట్ పాస్వర్డ్ భాగాన్ని హోస్ట్ పేరు లేదా ఫ్రాగ్మెంట్గా చదవవచ్చు.
రెండు ప్రవేశ వివరాల ఫీల్డ్లను విడిగా ఎన్కోడ్ చేయండి
ఈ ఉదాహరణ URL నిర్మాణ విభజకాలను ఉంచి వినియోగదారు పేరు, పాస్వర్డ్ను మాత్రమే ఎన్కోడ్ చేస్తుంది:
from urllib.parse import quote
username = "user@team"
password = "p:a/ss#?"
proxy_url = (
"http://"
+ quote(username, safe="")
+ ":"
+ quote(password, safe="")
+ "@203.0.113.10:8080"
)
మీ నిజమైన ఎండ్పాయింట్, ప్రవేశ వివరాలు వాడండి. చూపిన చిరునామా డాక్యుమెంటేషన్ ఉదాహరణ. ఖాళీ safe ఆర్గ్యుమెంట్ ముఖ్యం: quote సాధారణంగా స్లాష్ను ఎస్కేప్ చేయకుండా ఉంచుతుంది, కానీ ఈ ప్రవేశ ఫీల్డ్లోని స్లాష్ను ఎన్కోడ్ చేయాలి.
మొత్తం ప్రాక్సీ URL ఎన్కోడ్ చేయవద్దు. స్కీమ్ విభజకాలు, ప్రవేశ వివరాలకు హోస్ట్కు మధ్య @ ఎన్కోడ్ చేస్తే కాపాడాలనుకున్న నిర్మాణం పాడవుతుంది. ఇప్పటికే ఎన్కోడ్ చేసిన పాస్వర్డ్ను రెండోసారి ఎన్కోడ్ చేయడమూ నివారించండి.
ఫలితాన్ని Requests తో వాడండి
import requests
response = requests.get(
"https://example.com/",
proxies={"http": proxy_url, "https": proxy_url},
timeout=(5, 15),
)
response.raise_for_status()
అభ్యర్థన ఇంకా విఫలమైతే ప్రాక్సీ లాగిన్ తిరస్కరిస్తోందా లేదా క్లయింట్ ముందే పార్సింగ్ లేదా కనెక్షన్లో విఫలమైందా చూడండి. 407 ప్రామాణీకరణ సవాలు, చెల్లని URL వేర్వేరు వైఫల్యాలు.
HTTPX ప్రామాణీకరణను విడిగా ఉంచగలదు
HTTPX Proxy ఆబ్జెక్ట్ ఎండ్పాయింట్, ప్రవేశ వివరాలను వేరు ఆర్గ్యుమెంట్లుగా తీసుకోగలదు:
import httpx
proxy = httpx.Proxy(
"http://203.0.113.10:8080",
auth=("user@team", "p:a/ss#?"),
)
with httpx.Client(proxy=proxy, trust_env=False, timeout=15) as client:
response = client.get("https://example.com/")
response.raise_for_status()
దీనితో userinfo భాగాన్ని మీరే నిర్మించాల్సిన అవసరం లేదు. ఇది ప్రవేశ వివరాలను ప్రాక్సీ కనెక్షన్ నుంచి స్వతంత్రంగా ఎన్క్రిప్ట్ చేయదు; ప్రతి సేవ మద్దతిచ్చే ప్రామాణీకరణ పద్ధతినీ ఎంచుకోదు.
ఉచిత జాబితా IP, పోర్ట్ మాత్రమే ఇస్తే ఈ ఉదాహరణ డిఫాల్ట్ ప్రవేశ వివరాలు ఇవ్వదు. నిర్వాహకుడు నిజంగా ఖాతా ఇచ్చినప్పుడే ప్రామాణీకరణ వాడండి. ప్రవేశ వివరాలున్న URLలను భాగస్వామ్య లాగ్లు, మూల ఫైళ్లలో ఉంచవద్దు.