HTTP proxy մատակարարի 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 բաղադրիչներ։ Հում գաղտնաբառի @ նշանը չպետք է շփոթվի proxy հոսթից առաջ եղած բաժանիչի հետ։ Այս ֆունկցիան սպասում է հում հավատարմագրեր. արդեն կոդավորված տեքստ փոխանցելը կարող է նորից կոդավորել տոկոսի նշանը։

Վերադարձված քարտեզը ընտրում է այս proxy-ն HTTP և HTTPS նպատակակետերի համար։ http://192.0.2.10-ի նման բանալին Requests-ում այլ իմաստ ունի. այն ընտրում է երթուղի այդ նպատակակետ հոսթի համար։ Սա proxy սերվերների լողավազանի ինդեքս չէ։

Վերլուծիչը դիտավորյալ ընդունում է միայն նշված IPv4 ձևաչափը։ Այն չի ընդգրկում երկու կետ պարունակող օգտանուններ կամ առանց փակագծերի IPv6 հասցեներ. դրանց անհրաժեշտ է միանշանակ մուտքային ձևաչափ։ Ստեղծված հավատարմագրերով URL-ները հեռու պահեք սովորական մատյաններից։

Առնչվող հոդվածներ