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 नित्य लॉगपासून दूर ठेवा.

संबंधित लेख