HTTP ప్రాక్సీ ప్రదాత IPv4 ఆకృతి ip:port:user:password అయితే, విలువను Requests కు ఇచ్చే ముందు ఫీల్డ్‌లను మార్చండి:

from ipaddress import IPv4Address
from urllib.parse import quote

def proxy_map(line):
    host, port, user, password = line.rstrip('\r\n').split(':', 3)
    host = str(IPv4Address(host))
    port = int(port)
    if not 1 <= port <= 65535:
        raise ValueError('Proxy port is out of range')
    credentials = quote(user, safe='') + ':' + quote(password, safe='')
    url = f'http://{credentials}@{host}:{port}'
    return {'http': url, 'https': url}

పరిమిత విభజన పాస్‌వర్డ్ లోపల ఉన్న అదనపు కోలన్‌లను కాపాడుతుంది. లైన్ ముగింపులను మాత్రమే తొలగించడం, ఆధారానికి చెందిన ఖాళీలు నిశ్శబ్దంగా తొలగించబడకుండా కూడా కాపాడుతుంది.

వినియోగదారు పేరు మరియు పాస్‌వర్డ్‌ను వేర్వేరు URL భాగాలుగా ఎన్‌కోడ్ చేయండి. ముడి పాస్‌వర్డ్‌లోని @ చిహ్నాన్ని ప్రాక్సీ హోస్ట్ ముందున్న విభజన చిహ్నంతో గందరగోళపరచకూడదు. ఈ ఫంక్షన్ ముడి ఆధారాలను ఆశిస్తుంది; ఇప్పటికే ఎన్‌కోడ్ చేసిన వచనాన్ని ఇచ్చినట్లయితే శాతం చిహ్నం మళ్లీ ఎన్‌కోడ్ కావచ్చు.

తిరిగి ఇచ్చిన మ్యాప్ HTTP మరియు HTTPS గమ్యాల కోసం ఈ ప్రాక్సీని ఎంచుకుంటుంది. http://192.0.2.10 వంటి కీకి Requests లో మరో అర్థం ఉంది: అది ఆ గమ్య హోస్ట్ కోసం మార్గాన్ని ఎంచుకుంటుంది. ఇది ప్రాక్సీ సర్వర్ల సమూహానికి సూచిక కాదు.

పార్సర్ పేర్కొన్న IPv4 ఆకృతిని ఉద్దేశపూర్వకంగానే అంగీకరిస్తుంది. కోలన్ ఉన్న వినియోగదారు పేర్లను లేదా బ్రాకెట్‌లు లేని IPv6 చిరునామాలను ఇది కవర్ చేయదు; వాటికి అస్పష్టత లేని ఇన్‌పుట్ ఆకృతి అవసరం. సృష్టించిన ఆధారాలతో కూడిన URL లను సాధారణ లాగ్‌లకు దూరంగా ఉంచండి.

సంబంధిత వ్యాసాలు