Skip to content
intermediate

Как использовать резидентные прокси ProxyScrape для веб-скрапинга на Python

Пошаговое руководство по интеграции резидентных и датацентровых прокси ProxyScrape в ваши скрипты веб-скрапинга на Python с использованием протоколов HTTP и SOCKS5.

SOCKS5 HTTP(S) Веб-скрейпинг

Обзор

ProxyScrape предоставляет резидентные, датацентровые и мобильные прокси с поддержкой HTTP и SOCKS5, опираясь на пул из более чем 97 млн IP-адресов. В этом руководстве показано, как использовать прокси ProxyScrape в Python для задач веб-скрапинга. Вы научитесь настраивать запросы как с HTTP, так и с SOCKS5, обрабатывать аутентификацию и выполнять ротацию прокси. Эти шаги применимы к любому поставщику прокси, но мы используем ProxyScrape в качестве примера благодаря его надежному времени безотказной работы и долгосрочной стабильности.

Шаги

  1. Получите учетные данные прокси от ProxyScrape. Войдите в свою панель управления ProxyScrape и перейдите к списку прокси или разделу API. Вы найдете эндпоинт прокси (IP:port), имя пользователя и пароль. ProxyScrape предлагает тарифные планы с оплатой по мере использования и с фиксированной ежемесячной оплатой, поэтому выберите тот, который соответствует вашему объему скрапинга.

  2. Установите необходимые библиотеки Python. Откройте терминал и установите requests и requests[socks] для поддержки SOCKS5:

    pip install requests requests[socks]
    
  3. Напишите базовый скрипт скрапинга с использованием HTTP-прокси. Создайте файл Python и используйте следующий код для отправки запросов через HTTP-прокси ProxyScrape. Замените заполнители своими фактическими учетными данными.

    import requests
    
    proxy_url = "http://username:password@proxy-endpoint:port"
    proxies = {
        "http": proxy_url,
        "https": proxy_url,
    }
    
    response = requests.get("http://httpbin.org/ip", proxies=proxies, timeout=10)
    print(response.json())
    
  4. Используйте SOCKS5-прокси для лучшей анонимности. ProxyScrape поддерживает SOCKS5. Измените схему URL прокси на socks5://:

    import requests
    
    proxy_url = "socks5://username:password@proxy-endpoint:port"
    proxies = {
        "http": proxy_url,
        "https": proxy_url,
    }
    
    response = requests.get("http://httpbin.org/ip", proxies=proxies, timeout=10)
    print(response.json())
    
  5. Выполняйте ротацию прокси, чтобы избежать ограничений частоты запросов. Если ваш тариф ProxyScrape предоставляет ротационный эндпоинт, используйте этот эндпоинт для каждого запроса. В противном случае ведите список эндпоинтов прокси из вашей панели управления и циклически переключайтесь между ними. Пример:

    import requests
    import random
    
    proxy_list = [
        "http://user:pass@proxy1:port",
        "http://user:pass@proxy2:port",
        # ... add more
    ]
    
    def get_random_proxy():
        return random.choice(proxy_list)
    
    for _ in range(10):
        proxy_url = get_random_proxy()
        proxies = {"http": proxy_url, "https": proxy_url}
        try:
            response = requests.get("http://httpbin.org/ip", proxies=proxies, timeout=10)
            print(response.json())
        except Exception as e:
            print(f"Proxy failed: {e}")
    
  6. Обрабатывайте ошибки и повторы. Соединения через прокси могут сбоить. Оберните ваши запросы в блоки try/except и реализуйте механизм повторных попыток с новым прокси при сбое. Это гарантирует, что ваш скрапер останется надежным.

  7. Тестируйте и масштабируйте. Запустите скрипт и убедитесь, что IP меняется с каждым запросом. Для крупномасштабного скрапинга рассмотрите использование объекта сессии и настройку параллелизма в соответствии с лимитами вашего тарифа ProxyScrape.

Примечание: Всегда соблюдайте условия обслуживания веб-сайтов и robots.txt. Резидентные и датацентровые прокси ProxyScrape надежны, но этичные практики скрапинга — ваша ответственность.