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дерди кадимки журналдардан тышкары кармаңыз.

Тектеш макалалар