Перейти до вмісту
Guides 4 хв читання 897 переглядів

Використання проксі у Python з бібліотекою requests

Дізнайтеся, як використовувати проксі у бібліотеці requests Python для безпечного веб-скрейпінгу. Навчіться впроваджувати GProxy та обходити обмеження.

Python
Використання проксі у Python з бібліотекою requests

HTTP-проксі — це проміжний сервер, який діє як шлюз між вами та інтернетом. Коли ви використовуєте проксі, ваші запити спочатку маршрутизуються через проксі-сервер, перш ніж досягти цільового сервера. Це приховує вашу IP-адресу та може використовуватися для різних цілей, таких як обхід географічних обмежень, веб-скрейпінг та підвищення безпеки. Бібліотека Python requests дозволяє легко використовувати проксі у ваших HTTP-запитах.

Навіщо використовувати проксі з бібліотекою requests?

Є кілька ключових причин, чому ви можете захотіти використовувати проксі з бібліотекою requests:

  • Анонімність: Проксі маскують вашу IP-адресу, ускладнюючи відстеження вашої онлайн-активності.
  • Обхід географічних обмежень: Отримуйте доступ до контенту, який обмежений певними регіонами, використовуючи проксі-сервер, розташований у цьому регіоні.
  • Веб-скрейпінг: Уникайте блокування під час скрейпінгу веб-сайтів, чергуючи різні проксі-сервери. Багато веб-сайтів застосовують обмеження швидкості або блокування IP-адрес, щоб запобігти зловживанню їхніми даними.
  • Балансування навантаження: Розподіляйте запити між кількома серверами для покращення продуктивності та надійності.
  • Безпека: Проксі можуть додати додатковий рівень безпеки, діючи як буфер між вашим комп'ютером та інтернетом. Вони також можуть фільтрувати шкідливий контент.
  • Тестування: Імітуйте доступ користувачів з різних місць для цілей тестування.

Налаштування проксі в requests

Бібліотека requests надає простий спосіб налаштування проксі за допомогою параметра proxies у функціях запитів (get, post, put, delete тощо). Параметр proxies приймає словник, де ключами є протоколи (наприклад, 'http', 'https'), а значеннями — URL-адреси проксі.

Базова конфігурація проксі

Ось базовий приклад використання проксі з бібліотекою requests:

import requests

proxies = {
  'http': 'http://your_proxy_address:port',
  'https': 'https://your_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Замініть your_proxy_address та port на фактичну адресу та порт вашого проксі-сервера. Метод raise_for_status() є вирішальним для обробки помилок; він викличе виняток, якщо код стану HTTP вказує на помилку (наприклад, 404 Not Found, 500 Internal Server Error).

Використання різних проксі для HTTP та HTTPS

Ви також можете вказати різні проксі для HTTP- та HTTPS-трафіку:

import requests

proxies = {
  'http': 'http://http_proxy_address:port',
  'https': 'https://https_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Автентифікація проксі

Багато проксі-серверів вимагають автентифікації. Ви можете включити ім'я користувача та пароль в URL-адресу проксі:

import requests

proxies = {
  'http': 'http://username:password@your_proxy_address:port',
  'https': 'https://username:password@your_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Крім того, ви можете використовувати модуль requests.auth для більш складних схем автентифікації. Однак для базової автентифікації за іменем користувача/паролем вбудовування облікових даних в URL-адресу зазвичай достатньо.

SOCKS-проксі

Бібліотека requests підтримує SOCKS-проксі, але вам потрібно буде встановити додатковий пакет requests[socks].

pip install requests[socks]

Після встановлення ви можете використовувати SOCKS-проксі таким чином:

import requests

proxies = {
  'http': 'socks5://user:pass@host:port',
  'https': 'socks5://user:pass@host:port'
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Ви можете використовувати схеми socks4 або socks5. Якщо для вашого SOCKS-проксі не потрібні ім'я користувача/пароль, просто опустіть їх з URL-адреси (наприклад, 'socks5://host:port').

Порівняння типів проксі

Ось порівняння різних типів проксі:

Функція HTTP-проксі HTTPS-проксі SOCKS-проксі
Протокол HTTP HTTPS SOCKS (4, 5)
Шифрування Без шифрування (якщо цільовий сервер не HTTPS) Шифрує трафік до проксі-сервера Підтримує шифрування (SOCKS5)
Варіанти використання Веб-перегляд, доступ до HTTP-сайтів Веб-перегляд, доступ до HTTPS-сайтів Універсальний, підтримує різні протоколи (HTTP, HTTPS, FTP тощо)
Безпека Менш безпечний Більш безпечний Більш безпечний (особливо з SOCKS5)
Складність Простий у налаштуванні Простий у налаштуванні Може бути складнішим у налаштуванні
Прикладний рівень Розуміє протокол HTTP Розуміє протокол HTTP Працює на транспортному рівні

Ротація проксі для веб-скрейпінгу

Під час веб-скрейпінгу ротація через кілька проксі є вирішальною, щоб уникнути блокування вашої IP-адреси. Ось як ви можете реалізувати ротацію проксі:

import requests
import random

proxy_list = [
  'http://user1:[email protected]:8000',
  'http://user2:[email protected]:8001',
  'http://user3:[email protected]:8002',
]

def get_page(url):
    proxy = random.choice(proxy_list)
    proxies = {'http': proxy, 'https': proxy}
    try:
        response = requests.get(url, proxies=proxies, timeout=10)  # Add timeout
        response.raise_for_status()
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"Error using proxy {proxy}: {e}")
        return None

url = 'https://www.example.com'
content = get_page(url)

if content:
    print("Successfully retrieved content.")
    # Process the content here
else:
    print("Failed to retrieve content.")

У цьому прикладі:

  • Підтримується список проксі-серверів.
  • Функція random.choice() вибирає випадковий проксі зі списку для кожного запиту.
  • До функції requests.get() додано timeout, щоб запобігти безкінечному зависанню скрипта, якщо проксі не відповідає.
  • Реалізовано обробку помилок для перехоплення винятків та повторної спроби з іншим проксі.

Пам'ятайте, що потрібно витончено обробляти помилки та реалізовувати логіку повторних спроб з різними проксі, якщо запит не вдається. Розгляньте можливість використання більш надійної бібліотеки для керування проксі для великомасштабних проектів скрейпінгу.

Поширені проблеми та їх усунення

  • Помилки автентифікації проксі: Перевірте ім'я користувача та пароль. Переконайтеся, що вони правильно закодовані в URL-адресі проксі.
  • Помилки підключення: Перевірте, чи працює проксі-сервер і чи доступний він з вашої мережі. Перевірте налаштування брандмауера.
  • Таймаути: Збільште значення timeout у функції requests.get(). Стандартний таймаут може бути занадто коротким для деяких проксі-серверів.
  • Заблоковані запити: Цільовий веб-сайт може блокувати IP-адресу проксі-сервера. Спробуйте використовувати інший проксі або список проксі, що обертаються.
  • Помилки SOCKS-проксі: Переконайтеся, що ви встановили додатковий пакет requests[socks]. Перевірте, чи правильно налаштований SOCKS-проксі-сервер.

Висновок

Використання проксі з бібліотекою Python requests є потужною технікою для різних завдань, включаючи веб-скрейпінг, доступ до географічно обмеженого контенту та підвищення безпеки. Розуміючи, як налаштовувати проксі, обробляти автентифікацію та реалізовувати ротацію проксі, ви можете ефективно використовувати проксі у своїх програмах Python. Пам'ятайте, що потрібно витончено обробляти помилки та вибирати відповідний тип проксі для ваших конкретних потреб.

Оновлено: 26.01.2026
Назад до категорії

Читайте також

Guides 2 хв

Проксі для Nike SNKRS: купуйте лімітовані релізи та створюйте безліч акаунтів

Використовуйте residential або mobile проксі для Nike SNKRS, щоб брати участь у розіграшах з кількох акаунтів, обходити IP-ліміти та купувати лімітовані дропи без банів. Який тип обрати та як налаштувати GProxy.

Guides 2 хв

Як налаштувати проксі на iPhone (Wi-Fi та SOCKS5)

Налаштуйте проксі на iPhone через стандартні параметри Wi-Fi (HTTP/HTTPS) або додаток для проксі, як-от Shadowrocket, для SOCKS5 та стільникового зв'язку. Покрокове налаштування iOS та обмеження, про які варто знати.

Guides 3 хв

Проксі для Tinder: мультиакаунтинг та уникнення банів

Використовуйте мобільні або резидентські проксі для Tinder, щоб керувати кількома профілями та уникати IP shadowbans. Чому мобільні виграють, як усе налаштувати та чому сам по собі проксі не змінить ваше місто.

Guides 2 хв

Проксі для StockX: моніторинг цін та керування акаунтами

Використовуйте residential, ISP або mobile проксі для StockX, щоб моніторити ціни, керувати кількома акаунтами та купувати дропи без банів. Ось який тип обрати та як налаштувати GProxy.

Guides 3 хв

Проксі для OpenAI API: доступ, ліміти (Rate Limits) та налаштування

Маршрутизуйте OpenAI API через residential або ISP проксі, щоб отримати доступ до підтримуваних регіонів, уникнути 429 rate limits та ізолювати акаунти. Який проксі використовувати плюс приклади налаштування Python.

Guides 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.