Налаштування ротації проксі в Python за допомогою бібліотеки requests (для парсингу).
У класичному парсингу розробники витрачають години на написання менеджерів ротації: потрібно завантажити список із 1000 IP, перевірити їх на валідність, виключати забанені та стежити, щоб IP не повторювалися.
У CyberYozh App ми перевернули гру. Вам не потрібен список проксі. Вам потрібна одна адреса, яка сама змінює IP за вас. Вся магія налаштування відбувається не в коді, а в нашому Генераторі кредів (доступний для резидентських ротаційних проксі).
У цьому гайді ми розберемо, як налаштувати автоматичну ротацію та Sticky-сесії в Python за 3 хвилини, використовуючи наші Резидентські проксі.
🛠 Частина 1. Підготовка в CyberYozh App
Перш ніж відкривати PyCharm, зайдемо в особистий кабінет. Нам потрібно отримати правильні доступи. У розділі «Мої проксі» натисніть кнопку «Згенерувати облікові дані».

Рис. 1. Кнопка "Згенерувати облікові дані" (креди) в особистому кабінеті.
Тут ви керуєте логікою поведінки проксі. У нас є 3 режими, які змінюють те, як проксі поводитиметься в коді:
-
Випадковий IP (Random /
-res-any): Кожен новий запит = Новий IP. Ідеально для парсингу цін, збору даних. -
Коротка сесія (Targeting): IP тримається до 1 хвилини. Потрібен для точкової роботи в конкретному місті/штаті.
-
Довга сесія (Long /
-resfix): IP закріплюється за вами на термін до 6 годин (Sticky Session). Ідеально для авторизації на сайтах, щоб вас не розлогінило.

Рис. 2. Пункт вибору типу сесії в генераторі: випадкова, коротка і довга.

Рис. 3. Кнопка генерації даних для підключення.
⚠️ Важливий нюанс щодо портів: На відміну від інших сервісів, ми розділили порти для стабільності:
-
Для requests (HTTP/HTTPS) використовуйте порт 5959.
-
Для SOCKS5 клієнтів використовуйте порт 9595.
👉 Докладніше про ротацію для резидентських проксі можна прочитати тут.
💻 Частина 2. Сценарій «Парсинг»: Авто-ротація (Random IP)
Завдання: Зробити 10 запитів до сайту, і щоб кожного разу сайт бачив нас як нового користувача. Раніше вам потрібен був би список із 10 проксі. З CyberYozh App вам потрібен один рядок із префіксом -res-any.
import requests
# Дані з Генератора (Режим Random IP)
# Зверніть увагу на порт 5959 для HTTP!
PROXY_HOST = "51.77.190.247"
PROXY_PORT = "5959"
PROXY_USER = "pcJcWhGag4-res-any" # Префікс -res-any вмикає ротацію
PROXY_PASS = "ваш_пароль"
proxy_url = f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
proxies = {
"http": proxy_url,
"https": proxy_url
}
url = "https://httpbin.org/ip" # Сайт, який покаже наш IP
print("--- Запускаємо парсинг з ротацією ---")
for i in range(5):
try:
# Щоразу, смикаючи одне й те саме посилання, CyberYozh видасть новий IP
response = requests.get(url, proxies=proxies, timeout=10)
current_ip = response.json()['origin']
print(f"Запит {i+1}: Ваш зовнішній IP -> {current_ip}")
except Exception as e:
print(f"Помилка: {e}")
🚀 Частина 3. Сценарій «Акаунти»: Sticky-сесії (Long Session)
Завдання: Залогінитися на сайті та ходити по внутрішніх сторінках 30 хвилин, не змінюючи IP, щоб не отримати бан за підозрілу активність.
У генераторі CyberYozh App виберіть «Довга сесія». Система видасть вам логін з унікальним токеном (наприклад, ...-resfix-us-nnid-9d016...). Поки ви використовуєте цей логін — IP буде незмінним (до 6 годин).
import requests
# Дані з Генератора (Режим Long Session)
# Логін став довгим — у ньому зашитий ID сесії
PROXY_USER = "pcJcWhGag4-resfix-us-nnid-9d016abcd"
PROXY_PASS = "ваш_пароль"
PROXY_HOST = "51.77.190.247"
PROXY_PORT = "5959"
proxy_url = f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
# Використовуємо requests.Session для збереження кук та заголовків
session = requests.Session()
session.proxies = {
"http": proxy_url,
"https": proxy_url
}
# Мімікруємо під браузер
session.headers.update({
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."
})
print("--- Працюємо в одній сесії ---")
# Крок 1. Заходимо на головну (отримуємо IP)
r1 = session.get("https://httpbin.org/ip")
ip1 = r1.json()['origin']
print(f"Крок 1: Наш IP {ip1}")
# Крок 2. Робимо щось корисне (IP має залишитися тим самим)
r2 = session.get("https://httpbin.org/ip")
ip2 = r2.json()['origin']
print(f"Крок 2: Наш IP {ip2}")
if ip1 == ip2:
print("Успіх! Сесія утримується, можна безпечно працювати з акаунтом.")
else:
print("Увага! IP змінився (перевірте налаштування генератора).")
📱 Частина 4. Мобільні проксі (Private 4G/LTE): Керуємо модемом через код
З Резидентськими ротаційними проксі все просто: ви смикаєте одне посилання, а наша система сама підсовує вам новий IP з пулу. З Мобільними приватними проксі (Private) механіка інша. У вас є реальний USB-модем. Щоб змінити IP, цей модем потрібно фізично перезавантажити (перепідключити до вежі стільникового зв'язку).
У CyberYozh App для приватних портів (каналів) ми даємо спеціальне API-посилання. Якщо за ним перейти — модем піде в перезавантаження.
Головний нюанс: Зміна IP на мобільних проксі займає час (10-20 секунд). Якщо ваш скрипт не вміє чекати, він впаде з помилкою ConnectionError.

Рис. 4. Посилання на зміну IP-адреси в картці виділеного (Private) мобільного проксі.
Реалізація функції Reboot (Зміна IP)
Напишемо функцію, яка смикає API-посилання і ставить скрипт на паузу, поки модем шукає нову вежу.
import requests
import time
# --- НАЛАШТУВАННЯ З КАБІНЕТУ CYBERYOZH APP ---
MOBILE_PROXY = "http://LOGIN:PASS@IP:PORT" # Ваші дані доступу
ROTATION_LINK = "https://app.cyberyozh.com/api/v1/..." # Посилання з поля «Посилання для зміни IP-адреси»
def change_mobile_ip(api_link):
"""
Функція для перезавантаження мобільного модема.
"""
print(f"♻️ Запускаємо зміну IP...")
try:
# 1. Відправляємо сигнал на перезавантаження
r = requests.get(api_link)
if r.status_code == 200:
print("✅ Команда прийнята модемом.")
else:
print(f"⚠️ Помилка API: {r.status_code}")
return False
# 2. КРИТИЧНИЙ МОМЕНТ: Чекаємо на перезавантаження
# Модему потрібен час, щоб розірвати зв'язок і знайти нову вежу.
# Зазвичай це 10-20 секунд.
wait_time = 15
print(f"⏳ Чекаємо {wait_time} сек, поки модем перепідключиться...")
time.sleep(wait_time)
return True
except Exception as e:
print(f"Помилка при запиті до API: {e}")
return False
# --- ПРИКЛАД ВИКОРИСТАННЯ ---
proxies = {"http": MOBILE_PROXY, "https": MOBILE_PROXY}
# Крок 1. Працюємо з поточним IP
try:
ip_old = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10).json()['origin']
print(f"Старий IP: {ip_old}")
except:
print("Проксі поки недоступний або помилка мережі.")
# Крок 2. Змінюємо IP (якщо спіймали бан або закінчили цикл)
change_mobile_ip(ROTATION_LINK)
# Крок 3. Перевіряємо новий IP
try:
# Важливо: тут може вилетіти помилка, якщо 15 секунд не вистачило.
# В ідеалі варто додати цикл retries (як у Частині 3).
ip_new = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10).json()['origin']
print(f"Новий IP: {ip_new}")
except Exception as e:
print("Модем ще не піднявся, спробуйте збільшити time.sleep()")
💡 Лайфхак: Passive OS Fingerprint (Підміна відбитка)
Власникам Private тарифів у CyberYozh App доступна крута фішка — Passive OS Fingerprint. Якщо ви парсите мобільну версію сайту (наприклад, Instagram або TikTok), сайт перевіряє TCP/IP заголовки. Буде дивно, якщо ваш User-Agent каже "Я iPhone", а мережеві пакети кажуть "Я Windows Server".
Щоб підвищити траст, синхронізуйте заголовки в Python:
headers = {
# Цей User-Agent має збігатися з налаштуванням Fingerprint в особистому кабінеті CyberYozh!
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)..."
}
# Якщо в кабінеті включено профіль "iOS", а ви надсилаєте цей заголовок —
# для сайту ви виглядатимете як 100% реальний користувач iPhone з LTE інтернетом.
⚠️ Важливе застереження для Shared проксі
Якщо ви купили тариф Мобільні Shared (Спільні) проксі, код вище з API-посиланням працювати не буде.
-
Чому: На спільному модемі сидять інші люди. Якщо ви його перезавантажите, у них зникне інтернет.
-
Як працювати: Просто робіть запити в циклі
while True. Система сама змінить IP за таймером (раз на 5-10 хвилин). Вам потрібно лише обробляти помилки з'єднання в моменти зміни.
👉 Докладніше про мобільні проксі можна прочитати тут.
🛡 Частина 5. Часті помилки при інтеграції
Навіть з таким зручним інструментом бувають заминки. Ось топ-3 проблеми, з якими пишуть у нашу підтримку, і як їх вирішити в коді:
-
Помилка
ProxyErrorабо з'єднання розірвано:-
Причина: Ви переплутали порти.
-
Рішення: Перевірте, що в Python
requestsви використовуєте порт 5959 (HTTP). Порт 9595 призначений тільки для SOCKS-клієнтів (на кшталт Telegram або Proxifier), бібліотекаrequestsпрацює з SOCKS5 нестабільно без додаткових модулів.
-
-
IP змінюється занадто часто (в режимі Sticky):
-
Причина: Ви використовуєте логін
-res-anyзамість згенерованого токена. -
Рішення: Поверніться в Генератор, виберіть «Довга сесія» і скопіюйте повний рядок логіна з токеном
nnid.
-
-
Authentication Failed:
-
Причина: Зайвий пробіл.
-
Рішення: При копіюванні з кабінету часто захоплюється невидимий пробіл в кінці логіна або пароля. Функція
strip()в Python врятує ваші нерви:PROXY_USER = "pcJcWhGag4-res-any ".strip() # Прибере пробіли
-
Висновок
Використання Ротаційних резидентських та Мобільних приватних проксі від CyberYozh App позбавляє вас необхідності писати складні ротатори коду.
-
Потрібен парсинг? Берете префікс
anyі отримуєте мільйон IP. -
Потрібен акаунтинг? Берете префікс
fixі отримуєте стабільність.
👉 Спробуйте просто зараз: Зайдіть у розділ «Мої проксі», згенеруйте креди для Резидентських ротаційних проксі або використовуйте посилання для зміни IP на Мобільних приватних проксі та запустіть код вище.