Прокси адресът#
Всяка библиотека приема прокси като адрес.С ключов прокси адресът носи вашите данни и паролата за достъп. Параметрите за насочване в потребителското име; името на хоста е шлюзът, а портът избира протокола.
# Rotating: a new United States household on every new connection
http://USER-cc-us:PASS@res.proxy-cyber.com:9000
# Sticky: one Berlin household held for 30 minutes under the id "job42"
http://USER-cc-de-city-berlin-sid-job42-ttl-30m:PASS@res.proxy-cyber.com:9000
# SOCKS5 with remote DNS (socks5h), same parameters
socks5h://USER-cc-us:PASS@res.proxy-cyber.com:9001искания#
Клиентската сесия използва повторно сокетите; само назначеният шлюз определя ротация и поведение на залепване. Използвайте параметрите на сесията, предоставени с услугата ви, и проверете изхода при няколко заявки. Затварянето на сокета или изпращането на Връзка: не гарантира различен адрес IP.
import requests
PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
proxies = {"http": PROXY, "https": PROXY}
# One request, one exit
r = requests.get("https://api.ipify.org", proxies=proxies, timeout=30)
print(r.text)
# A sticky flow: same exit for every request of this session
sticky = "http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxy-cyber.com:9000"
s = requests.Session()
s.proxies = {"http": sticky, "https": sticky}
s.get("https://example.com/product/1", timeout=30)
s.post("https://example.com/cart", json={"id": 1}, timeout=30)httpx#
Отнема само 1 минута. proxy= По-стари версии: proxies=Той поддържа HTTP/2 към дестинацията чрез тунела и работи по същия начин в асинхронен код.
import httpx
PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
with httpx.Client(proxy=PROXY, timeout=30) as client:
print(client.get("https://api.ipify.org").text)
# async, one sticky exit per task
import asyncio
async def fetch(sid: str, url: str) -> str:
proxy = f"http://USER-cc-us-sid-{sid}-ttl-10m:PASS@res.proxy-cyber.com:9000"
async with httpx.AsyncClient(proxy=proxy, timeout=30) as client:
return (await client.get(url)).text
asyncio.run(fetch("task1", "https://api.ipify.org"))aiohttp#
aiohttp взема проксито на заявка или на сесия и говори проксита естествено; SOCKS5 се нуждае от aiohttp-socks конектор.
import aiohttp, asyncio
PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
async def main():
async with aiohttp.ClientSession() as session:
async with session.get("https://api.ipify.org", proxy=PROXY, timeout=aiohttp.ClientTimeout(total=30)) as r:
print(await r.text())
asyncio.run(main())Ротация, поддържане на живот и повторни опити#
- Новата връзка е нова транспортна връзка, а не доказателство за нов изход.Режимът на ротация, зададен от гейтуа решава как да бъде маршрутизирана тази връзка.
- Използвайте различен идентификатор на сесия за всеки независим работен процес, когато определеният портал го поддържа. Потвърдете разрешената продължителност и параметрите на местоположението в подробностите за вашата връзка. Устройство от дома може да прекъсне връзката преди поисканата продължителност; една прилепнала сесия не е гаранция за един и същи адрес IP в продължение на дни.
- Класифицирайте отговора преди да опитате отново. 403 може да означава правило за достъп, което друг адрес IP няма да разреши. За 429 уважавайте и намалете честотата на заявките; използвайте ограничено връщане назад при временни свързвания или откази на сървъра. Опитайте отново операциите по промяна на състоянието само когато можете да предотвратите дублиране на действия.
- Задайте таймъри за типа на изхода: 15 свързване и 45 ч. четене за жилищни, повече за мобилни устройства.
Спестяване на гигабайти#
Жилищният трафик се таксува на ГБ в двете посоки. Поискай компресирани отговори (Accept-Encoding: gzip, br Не изтегляйте изображения, шрифтове или мултимедия, освен ако не са данни. Страница с размер 350 КБ е евтина; страница с ресурси от 4 МБ не е. Използвайте само файлове с големина 100 КБ (или по-малки).
Въпроси, които хората задават#
Защо получавам един и същ адрес IP при заявки?
Повтарящите се адреси IP могат да бъдат резултат от групиране на връзки, активна лепкава сесия или наличния Сравнете зададените маршрутизиращи режими и тествайте няколко заявки с времеви печати.А управлява връзките и бисквитките; той сам не избира изхода на проксито.
Нуждая ли се от различен прокси за сайтове?
Не. Същият прокси адрес обработва дестинации чрез тунел, а се изпълнява от край до край между кода Ви и сайта.
Мога ли да използвам същия код за мобилни проксита?
Yes: replace res.proxy-cyber.com with mob.proxy-cyber.com. Ports, credentials and parameters are identical.