Requests का लागि IPv4 ip:port:user:password प्रविष्टिहरू रूपान्तरण गर्नुहोस्
ip:port:user:password लाई सीमित विभाजनद्वारा पार्स गर्नुहोस् र प्रोक्सी नक्सा बनाउनु अघि प्रमाण-पत्रका भागहरू इन्कोड गर्नुहोस्।
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 हरूलाई नियमित लगबाट टाढा राख्नुहोस्।