Как настроить прокси IPFoxy для автоматизированного веб-скрапинга
Скраперы редко падают на первом запросе. Они падают на четырёхсотом. На тестах всё работает, вы повышаете параллелизм — и вместо данных логи заполняются ответами 403, 429 и страницами с капчей. Это целевой сайт заметил, что с одного адреса идёт много трафика, и решил вас притормозить.
Обычное решение — нормальный слой прокси: распределить запросы по множеству IP, чтобы ни один адрес не выглядел подозрительно, и сохранить тот параллелизм, который вам нужен.
В этом руководстве разбираем, как настроить прокси IPFoxy в конвейере автоматизированного скрапинга. Примеры — на Crawl4AI, но тот же подход работает с Playwright и Selenium.
Об IPFoxy
IPFoxy — провайдер прокси с резидентными, серверными и мобильными IP. Сервис рассчитан на команды, которые занимаются веб-скрапингом, ведением соцсетей и мультиаккаунтингом: широкое географическое покрытие и пулы с высокой анонимностью помогают конвейерам сбора данных проходить антибот-системы, лимиты запросов и региональные ограничения.
Шаг 1. Получите доступы к прокси
- Войдите в панель управления IPFoxy.
- Откройте раздел Get Rotating Residential Proxy.
- Выберите страну/регион, протокол (HTTP или SOCKS5) и режим ротации (с ротацией или sticky).
- Скопируйте параметры подключения:
- Хост: proxy.ipfoxy.com (или выданный вам IP сервера)
- Порт: 8888 (или ваш нестандартный порт)
- Логин: your_proxy_username
- Пароль: your_proxy_password
Не держите это в исходном коде. В примере ниже значения читаются из переменных окружения — одной заботой меньше, когда вы пушите в репозиторий.
Шаг 2. Добавьте прокси в код
Ниже — рабочая конфигурация на Python с Crawl4AI и IPFoxy:
import asyncio
import os
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig
# Читаем доступы из переменных окружения — так безопаснее
IPFOXY_HOST = os.getenv("IPFOXY_HOST", "proxy.ipfoxy.com")
IPFOXY_PORT = os.getenv("IPFOXY_PORT", "8888")
IPFOXY_USER = os.getenv("IPFOXY_USER", "your_username")
IPFOXY_PASS = os.getenv("IPFOXY_PASS", "your_password")
async def main():
# 1. Собираем URL прокси с авторизацией
proxy_url = f"http://{IPFOXY_USER}:{IPFOXY_PASS}@{IPFOXY_HOST}:{IPFOXY_PORT}"
# 2. Указываем браузеру прокси
browser_config = BrowserConfig(
browser_type="chromium",
headless=True,
proxy=proxy_url
)
# 3. Настройки запуска краулера
run_config = CrawlerRunConfig(
word_count_threshold=10
)
# 4. Запускаем задачу
async with AsyncWebCrawler(config=browser_config) as crawler:
result = await crawler.arun(
url="https://httpbin.org/ip", # тестовый эндпоинт для проверки исходящего IP
config=run_config
)
if result.success:
print("--- IPFoxy proxy connected successfully ---")
print(result.markdown)
else:
print(f"Scraping failed: {result.error_message}")
if __name__ == "__main__":
asyncio.run(main())Шаг 3. Убедитесь, что всё действительно работает
Не направляйте это сразу на реальные цели. Сначала отправьте один запрос на https://httpbin.org/ip и посмотрите, что вернётся.
IP в ответе должен соответствовать региону, который вы выбрали в панели. Если вместо него вы видите адрес собственной сети, прокси не применяется — обычно это опечатка в доступах или объект конфигурации, который так и не дошёл до браузера.
Как только вернувшийся IP выглядит правильно, переводите скрипт на свои целевые URL.
Хорошие практики
Наращивайте нагрузку постепенно. Начните с партии из одного-пяти запросов и проверьте result.success, прежде чем подходить к сотням параллельных потоков. Найти ошибку в конфигурации на пяти запросах намного проще, чем на пятистах.
Подбирайте ротацию под то, что собираете. Меняйте IP на каждом запросе, когда тянете постраничные списки или каталожные страницы без состояния, — сессию там защищать нечего. Используйте sticky-сессии, когда вы за логином или проходите многошаговую форму: новый IP посреди сценария обычно означает начать всё заново.
Сочетайте прокси со stealth-настройками. На сайтах с серьёзной антибот-защитой — например, на Cloudflare — одних чистых IP не хватит. Включите подмену отпечатка (stealth-режим) вместе с резидентными IP от IPFoxy, чтобы профиль браузера и исходящий IP рассказывали одну и ту же историю.
Всё равно рассчитывайте на капчу. Хорошие прокси снижают частоту проверок, но не убирают их совсем. Если проверка появилась на защищённом шаге, API-сервис вроде CapMonster Cloud вернёт токен, и та же сессия продолжится, а не умрёт на середине задачи.
Если что-то не работает
Таймауты соединения. Уберите свой код из уравнения и проверьте эндпоинт напрямую:
curl -x http://USERNAME:PASSWORD@HOST:PORT https://httpbin.org/ip
Если curl тоже не проходит, дело в доступах или в сети — некоторые корпоративные файрволы и интернет-провайдеры наглухо блокируют нестандартные порты прокси.
403 при работающем прокси. Рабочий прокси меняет только исходящий IP. Сайт всё ещё может читать заголовки запроса — отсутствующий или явно статичный User-Agent выдаёт чаще всего — или ждать контент, который появляется только после отрисовки страницы. Добавьте правдоподобные заголовки и используйте wait_for, чтобы не забирать пустой DOM.
Готовы масштабировать скрапинг? Заходите на IPFoxy и начните с производительных резидентных прокси.





