Якщо ви запускаєте mobile proxy Scrapy setup вперше і отримуєте HTTP 403 вже після 50 запитів, ви не одні. Scrapy — один із найпотужніших фреймворків для парсингу, але без правильно налаштованих мобільних проксі він стає легкою мішенню для систем захисту сайтів. У цьому посібнику ви дізнаєтесь: як підключити 4G мобільні проксі до Scrapy через middleware, як налаштувати автоматичну ротацію IP через API, як уникнути блокувань на Google, Amazon та Allegro, а також які параметри конфігурації дають найкращий результат на практиці. У нас на інфраструктурі Proxy Poland ми щодня обробляємо понад 50 000 ротацій IP через фізичні LTE-модеми в Польщі, тому кожна порада тут перевірена в реальних умовах.

Чому мобільні проксі перевершують датацентрові для Scrapy
Датацентрові проксі мають одну фундаментальну проблему: їхні IP-адреси легко ідентифікуються за ASN. Cloudflare, PerimeterX і більшість корпоративних WAF миттєво бачать, що запит іде не від реального користувача, а з якогось дата-центру в Амстердамі чи Франкфурті. Результат: 403, CAPTCHA або тихе підсовування фейкових даних.
Мобільні проксі на реальних LTE-модемах працюють зовсім інакше. Кожен IP належить мобільному оператору, знаходиться за CGNAT і виглядає точнісінько як трафік зі смартфона. Жоден алгоритм виявлення ботів не відрізнить ваш Scrapy-спайдер від людини, яка гортає сторінки з телефону.
Реальні переваги для скрапінгу
- Нульовий відсоток виявлення на таких платформах як Google Shopping, Amazon та Allegro при правильному налаштуванні.
- Ротація IP за 2 секунди через API-виклик без розриву з'єднання.
- Безлімітний трафік за фіксованою ціною, що критично важливо при великих обсягах парсингу.
- Реальні польські IP-адреси для локалізованого збору даних із польських сайтів.
Key takeaway: Для серйозного Scrapy-скрапінгу мобільні проксі — це не розкіш, а необхідність. Датацентрові IP вам заблокують протягом першої години роботи на будь-якому захищеному сайті.
Підготовка середовища та встановлення залежностей
Перш ніж писати будь-який код, потрібно правильно підготувати Python-середовище. У нашому тестуванні найстабільніша конфігурація — це Python 3.10+ разом із Scrapy 2.11. Старіші версії Scrapy мають обмеження в роботі з асинхронними запитами до API ротації.
Покрокова установка
- Створіть віртуальне середовище:
python -m venv scrapy-proxy-env - Активуйте його:
source scrapy-proxy-env/bin/activate(Linux/Mac) абоscrapy-proxy-env\Scripts\activate(Windows) - Встановіть Scrapy:
pip install scrapy==2.11.0 - Встановіть бібліотеку для HTTP-запитів до API:
pip install requests - Для SOCKS5 підтримки:
pip install scrapy[all]або окремоpip install PySocks
Також одразу створіть новий Scrapy-проект: scrapy startproject proxy_scraper. Всередині папки proxy_scraper/ ви знайдете файл settings.py, з якого починається будь-яка конфігурація проксі. Структура проекту буде основою для всіх наступних кроків.
Key takeaway: Не пропускайте крок із PySocks. Без нього Scrapy просто ігнорує SOCKS5-проксі без жодного повідомлення про помилку, і ви будете довго шукати причину витоку реального IP.
Базове підключення mobile proxy до Scrapy через settings.py
Найпростіший спосіб додати проксі в Scrapy — це через файл settings.py. Але цей підхід підходить лише для статичного проксі без ротації. Якщо ви плануєте парсити великі обсяги даних, вам знадобиться middleware, про який мова піде далі.
Ось базова конфігурація для HTTP-проксі Proxy Poland:
HTTPPROXY_ENABLED = True
Цей параметр активує вбудований middleware для проксі в Scrapy.
Далі у вашому спайдері або в settings.py додайте:
HTTP_PROXY = "http://username:password@proxy.proxypoland.com:8000"
Замініть username, password та порт на дані з вашої панелі керування Proxy Poland. Для SOCKS5 змініть схему на socks5://.
Важливі параметри для стабільної роботи
DOWNLOAD_TIMEOUT = 30— збільшіть тайм-аут, бо мобільні мережі іноді дають затримку 300-500ms.RETRY_TIMES = 5— при мобільному проксі іноді бувають короткі розриви під час ротації IP.DOWNLOAD_DELAY = 1— мінімальна затримка між запитами, щоб виглядати як людина.RANDOMIZE_DOWNLOAD_DELAY = True— Scrapy буде чекати від 0.5 до 1.5 секунди випадково.
Перевірте, що ваш реальний IP прихований, використовуючи інструмент перевірки IP під час роботи спайдера.

Створення власного ProxyMiddleware для ротації IP
Статичне підключення проксі через settings.py не дасть вам ротацію. Для реального mobile proxy Scrapy setup із зміною IP потрібен власний middleware. Це не так складно, як звучить.
Створіть файл proxy_scraper/middlewares/proxy_middleware.py:
import requests
from scrapy import signals
from scrapy.http import Request
class MobileProxyMiddleware:
PROXY_URL = "http://username:password@proxy.proxypoland.com:8000"
ROTATION_API = "https://api.proxypoland.com/rotate?key=YOUR_API_KEY"
request_count = 0
rotate_every = 50
def process_request(self, request, spider):
self.request_count += 1
if self.request_count % self.rotate_every == 0:
self._rotate_ip()
request.meta["proxy"] = self.PROXY_URL
def _rotate_ip(self):
try:
requests.get(self.ROTATION_API, timeout=5)
except Exception as e:
pass
Потім підключіть middleware у settings.py:
DOWNLOADER_MIDDLEWARES = {
"proxy_scraper.middlewares.proxy_middleware.MobileProxyMiddleware": 750,
"scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": None,
}
Значення None для стандартного HttpProxyMiddleware відключає його, щоб уникнути конфліктів. Пріоритет 750 гарантує, що ваш middleware запускається після більшості вбудованих, але до фінального надсилання запиту.
Key takeaway: Параметр rotate_every = 50 означає зміну IP кожні 50 запитів. Для агресивного парсингу зменшіть до 20-30. Для легких задач можна поставити 100-200.
Ротація IP через API Proxy Poland
Proxy Poland надає API для миттєвої зміни IP за 2 секунди. Це один із ключових інструментів для стабільного скрапінгу. Але правильна інтеграція API в Scrapy вимагає кількох деталей, які часто упускають.
Стратегії ротації
- За кількістю запитів — змінюйте IP кожні N запитів (показано вище). Добре для рівномірного навантаження.
- При отриманні 429 або 403 — реагуйте на коди помилок, замість планової ротації. Найефективніше для захищених сайтів.
- За таймером — міняйте IP кожні X хвилин незалежно від кількості запитів. Підходить для тривалих сесій.
- Автоматична ротація — налаштуйте в панелі керування Proxy Poland автоматичну зміну IP без API-викликів.
Для стратегії реакції на помилки розширте middleware методом process_response:
def process_response(self, request, response, spider):
if response.status in [403, 429, 503]:
self._rotate_ip()
import time; time.sleep(2)
return request.copy()
return response
Зверніть увагу на time.sleep(2) після виклику API ротації. Це критично: модему потрібно 1-2 секунди для отримання нового IP від оператора. Якщо ви надішлете запит раніше, ви все ще будете використовувати старий IP. Перевірити поточний IP можна через сервіс перевірки IP адреси.
Налаштування SOCKS5 та HTTP проксі в Scrapy
Proxy Poland підтримує обидва протоколи: HTTP і SOCKS5. Вибір між ними впливає на продуктивність і сумісність. У нашому тестуванні SOCKS5 дає на 15-20% меншу затримку при однакових умовах, але вимагає PySocks і дещо складнішої конфігурації.
HTTP проксі — простота і надійність
Формат підключення: http://user:pass@host:port. Підтримується Scrapy з коробки. Достатньо для більшості задач парсингу. Затримка в нашій мережі — близько 300-400ms для польських цільових сайтів.
SOCKS5 — швидкість і повна анонімність
Формат: socks5://user:pass@host:port. Не розкриває HTTP-заголовки проксі цільовому серверу. Краще підходить для ситуацій, де важлива максимальна анонімність. Перевірте відсутність DNS-витоків через тест DNS leak після налаштування SOCKS5.
Порівняльна таблиця протоколів для Scrapy:
- HTTP: проста конфігурація, підтримка з коробки, затримка 300-400ms, всі сайти підтримують.
- SOCKS5: потрібен PySocks, затримка 250-350ms, краща анонімність, іноді проблеми з redirect-ланцюжками.
Для більшості проектів ми рекомендуємо починати з HTTP і переходити на SOCKS5 тільки якщо є конкретна причина. Оцінити швидкість з'єднання через проксі можна за допомогою тесту швидкості проксі.
Key takeaway: Якщо ви парсите сайти через HTTPS (а більшість сучасних сайтів саме такі), різниця між HTTP і SOCKS5 проксі в плані анонімності мінімальна. Вибирайте той протокол, з яким простіше налагодити стабільну роботу.

Тестування та моніторинг швидкості проксі
Налаштували mobile proxy Scrapy setup — тепер треба переконатися, що все працює правильно. Без моніторингу ви ризикуєте годинами парсити через заблокований проксі або, ще гірше, через ваш реальний IP.
Базова перевірка конфігурації
- Запустіть тестовий спайдер проти
httpbin.org/ipі перевірте, чи повертається IP вашого проксі, а не ваш реальний. - Запустіть той самий спайдер двічі з ротацією між запусками і переконайтеся, що IP змінився.
- Перевірте заголовки запиту через інструмент аналізу HTTP-заголовків — там не має бути
X-Forwarded-Forз вашим реальним IP.
Моніторинг у production
Додайте до свого middleware логування помилок і статистику успішних ротацій:
- Рахуйте кількість 403/429 відповідей: якщо більше 5% запитів повертає ці коди, час перевірити проксі.
- Логуйте час кожної ротації IP: стабільна ротація займає 1.5-2.5 секунди на нашій інфраструктурі.
- Встановіть алерт на зменшення швидкості нижче 100 запитів на хвилину — це сигнал про проблеми з мережею.
В нашому тестуванні при правильно налаштованому mobile proxy Scrapy з ротацією кожні 50 запитів і затримкою 1 секунда між запитами, типова швидкість становить 2,000-3,000 успішних запитів на годину на один проксі-порт. Це більш ніж достатньо для більшості завдань моніторингу цін або збору контенту.
Висновок
Правильно налаштований mobile proxy Scrapy setup — це різниця між спайдером, який падає через 10 хвилин, і тим, що стабільно збирає дані тижнями. Три ключові висновки: по-перше, завжди використовуйте власний middleware замість базового HttpProxyMiddleware для контролю над ротацією. По-друге, додайте затримку 1-2 секунди після API-виклику ротації, щоб модем встиг отримати новий IP. По-третє, моніторте відсоток помилок 403/429 в реальному часі і реагуйте на їх зростання зміною частоти ротації. Мобільні 4G проксі на реальних LTE-модемах Proxy Poland дають нульовий відсоток виявлення і безлімітний трафік за фіксованою ціною від $11 на день. Спробуйте безкоштовно протягом 1 години без кредитної картки.
Готові запустити ваш Scrapy-проект без блокувань? Переглянути тарифні плани Proxy Poland і отримати безкоштовний пробний доступ вже сьогодні.
