Зміст:
- Як сайти обмежують запити
- Підключення проксі в бібліотеці requests
- Який тип проксі обрати для парсингу
- Ротація IP і темп запитів
- Обробка помилок
- Як заощадити трафік
- Тестовий прогін перед повним запуском
Парсинг на Python з проксі стає потрібним тоді, коли один IP-адрес уже не витримує обсягу запитів. Сервер бачить сотні звернень з однієї точки й починає відповідати помилками або капчею. Проксі розподіляють навантаження між кількома адресами, але темп і поведінка скрипта залишаються вашою відповідальністю.
Як сайти обмежують запити
Ліміти зазвичай прив’язані до IP-адреси, частоти запитів і поведінки клієнта. Коли поріг перевищено, сервер повертає код 429 Too Many Requests, часто із заголовком Retry-After, де вказано, скільки секунд чекати. Це прохання сповільнитися, а не привід просто змінити адресу.
Перед запуском перегляньте robots.txt та умови використання сайту: частину даних збирати не можна, а решту варто брати з обмеженою швидкістю.
Підключення проксі в бібліотеці requests
Проксі в requests передають через словник proxies; повний опис є в документації бібліотеки. Порядок дій такий:
- Створіть requests.Session(), щоб повторно використовувати з’єднання та cookies.
- Задайте proxies з ключами http і https; значення має вигляд http://логін:пароль@хост:порт.
- Завжди вказуйте timeout, інакше один завислий проксі зупинить увесь скрипт.
- Для SOCKS5 встановіть requests[socks] і використовуйте схему socks5h://, тоді DNS-запити теж підуть через проксі.
Prokso видає проксі у форматах HTTP, HTTPS і SOCKS5, а інструкція Prokso для Python містить робочий приклад підключення з авторизацією.

Який тип проксі обрати для парсингу
- Серверні — швидкі, підходять для масових запитів до сайтів зі слабким захистом.
- Резидентські — адреси домашніх провайдерів. Їх обирають, коли сайт зважає на репутацію IP або показує контент залежно від країни. У Prokso для резидентських проксі доступно 195 країн.
- Мобільні — для сервісів, орієнтованих на мобільну аудиторію.
Парсинг дає нерівномірне навантаження, тому оплата за гігабайти без підписки тут зручніша за фіксований місячний пакет, а куплений трафік не згорає між запусками.
Ротація IP і темп запитів
Змінювати адресу на кожен запит потрібно не завжди. Для сторінок із входом або кошиком краще тримати один IP на всю сесію, а ротацію застосовувати до незалежних сторінок каталогу. Додайте випадкову паузу 1–5 секунд між запитами й обмежте кількість паралельних потоків: десять потоків із різних адрес усе одно створюють помітне навантаження на сервер.
Обробка помилок
- На відповіді 429 і 503 повторюйте запит із наростаючою затримкою: 2, 4, 8 секунд.
- Якщо є Retry-After, дотримуйтеся вказаного часу.
- Після кількох невдач відкладіть адресу в чергу, а не надсилайте запит знову.
- Перед стартом перевірте проксі безкоштовним інструментом «Перевірка проксі» від Prokso, щоб не витрачати час на неробочі адреси.
Як заощадити трафік
Якщо потрібен лише текст, не завантажуйте зображення, шрифти й скрипти. Увімкніть стиснення через заголовок Accept-Encoding: gzip, кешуйте вже отримані сторінки та перевірте, чи не віддає сайт ті самі дані у форматі JSON. Менше трафіку означає менші витрати й менше навантаження на чужий сервер.

Тестовий прогін перед повним запуском
Спершу обробіть 20–50 сторінок і подивіться на цифри: частку успішних відповідей, середній час запиту, обсяг отриманих даних. Ведіть журнал, де для кожного запиту записано адресу, код відповіді та використаний проксі. За цими даними легко помножити розхід трафіку на весь обсяг і зрозуміти, чи вистачить купленого пакета, а також помітити проксі, які постійно дають збої.
ARTICLE_HTML_END
