Requests uchun IPv4 ip:port:user:password yozuvlarini aylantirish
ip:port:user:password ni cheklangan boʻlish bilan tahlil qiling va proksi xaritasini qurishdan oldin hisob maʼlumotlari qismlarini kodlang.
HTTP proksi provayderining IPv4 formati ip:port:user:password boʻlsa, qiymatni Requests ga berishdan oldin maydonlarni aylantiring:
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}
Cheklangan boʻlish parol ichidagi har qanday qoʻshimcha ikki nuqtani saqlab qoladi. Faqat satr oxirlarini olib tashlash, hisob maʼlumotiga tegishli boʻlishi mumkin boʻlgan boʻshliqlarning jimgina olib tashlanishidan ham saqlaydi.
Foydalanuvchi nomi va parolni alohida URL qismlari sifatida kodlang. Xom paroldagi @ belgisini proksi xosti oldidagi ajratgich bilan aralashtirmaslik kerak. Bu funksiya xom hisob maʼlumotlarini kutadi; allaqachon kodlangan matn berilsa, foiz belgisi qayta kodlanishi mumkin.
Qaytarilgan xarita HTTP va HTTPS manzillari uchun ushbu proksini tanlaydi. http://192.0.2.10 kabi kalit Requests da boshqa maʼnoga ega: u shu manzil xosti uchun marshrutni tanlaydi. Bu proksi serverlar guruhi uchun indeks emas.
Tahlilchi aytilgan IPv4 formatini ataylab qabul qiladi. U ikki nuqta qoʻshilgan foydalanuvchi nomlarini yoki qavssiz IPv6 manzillarini qamrab olmaydi; ularga bir maʼnoli kiritish formati kerak. Yaratilgan hisob maʼlumotli URL larni odatiy jurnallardan uzoqda saqlang.