Python Requests-те проксиді қалай пайдалану керек (HTTP/HTTPS және Session пулы)
Updated:
Python-ның requests кітапханасы 'http' және 'https' схемаларын http://user:pass@ip:port форматына сәйкестендіретін proxies сөздігі арқылы аутентификацияланған VinaProxy проксилерін қабылдайды. Бұл сөздікті тұрақты requests.Session() данасына тіркеу веб-скрейпингті жылдам әрі қосымша шығынсыз орындау үшін негізгі TCP-сокеттерді қайта пайдаланады.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
proxies сөздігін пішімдеу және сессияларды қайта пайдалану
Әрбір URL мекенжайында requests.get() шақыру сайын жаңа TCP байланысы мен TLS қол алысуы жасалады. Проксиіңізді session = requests.Session() данасына байлау қатарынан жасалатын сұраулар бойынша прокси туннелін ашық сақтайды.
| Requests параметрі | Ұсынылатын синтаксис | Техникалық мақсаты |
|---|---|---|
'http' кілті | 'http://user:pass@ip:port' | Қарапайым HTTP сұрауларын прокси арқылы бағыттайды |
'https' кілті | 'http://user:pass@ip:port' | urllib3 TLS үшін HTTP CONNECT туннелін ашуы мақсатында http:// схемасын пайдаланады |
timeout кортежі | timeout=(5, 15) | 5 с қосылу және 15 с оқу күту уақыты жұмысшы ағындардың бұғатталып қалуына жол бермейді |
| Пул ротациясы | itertools.cycle(proxy_list) | Бөлінген статикалық IP пулыңызды біркелкі айналдырады |
urllib3 және ProxyError жиі кездесетін қателерін болдырмау
- Прокси портыңыз TLS-over-TLS байланысын нақты талап етпесе, сөздіктің
'http'және'https'кілттері үшін прокси URL схемасы ретінде әрқашанhttp://(https://емес) пайдаланыңыз - Құпия сөздердегі арнайы таңбаларды
urllib.parse.quote(password, safe='')көмегімен URL-кодтаңыз 407 Proxy Authentication Requiredқатесі URL жолындағы пайдаланушы аты немесе құпия сөз басқару панеліндегі деректерге сәйкес келмегенін білдіредіhttpx.Client(proxy='http://user:pass@ip:port')жәнеaiohttpкітапханасыныңsession.get(url, proxy=...)әдісімен дәл солай жұмыс істейді
Қадам бойынша
- 1
ip:port:user:pass форматын URL синтаксисіне түрлендіру
VinaProxy тізімін
http://user:pass@ip:portжолдарына түрлендіру үшін біздің Proxy Format Converter құралын пайдаланыңыз. - 2
proxies сөздігін анықтау
Python сценарийінде
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}мәнін орнатыңыз. - 3
requests.Session() данасына бекіту
Тұрақты
Keep-Aliveпулы үшінs = requests.Session()инициализациялап,s.proxies.update(proxies)шақырыңыз. - 4
Тесттік сұрау арқылы шығыс IP-ді тексеру
Белсенді прокси IP-ін растау үшін
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())кодын орындаңыз.
Жиі қойылатын сұрақтар
Неліктен 'https' кілті 'http://user:pass@ip:port' мәнін пайдаланады?
http:// префиксі urllib3 кітапханасына прокси-сервердің өзіне қалай қосылу керектігін көрсетеді (стандартты HTTP CONNECT арқылы), ал мақсатты https:// веб-сайтына дейінгі трафигіңіз толықтай TLS арқылы шифрланған күйінде қалады.
Python-да сұраулар бойынша 25 статикалық проксиді қалай ротациялауға болады?
25 прокси URL мекенжайын pool = itertools.cycle(PROXIES) ішіне жүктеп, әр IP үшін шектеулерді ескере отырып, әр сұрауға proxies={'http': p, 'https': p} беріңіз.
Does VinaProxy meter bandwidth on Python scraping scripts?
Жоқ. Барлық Dedicated IPv4 және Static ISP тарифтері шектеусіз ай сайынғы трафикті қамтиды.
Шектеусіз Python скрейпинг пулын жасаңыз
7 ел бойынша лезде берілетін Dedicated IPv4 және Static ISP проксилері.
Python проксилерін сатып алу