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-дерді күнделікті журналдардан тыс ұстаңыз.