// Independent proxy testing 23 providers tested Updated quarterly
Benchmarks / 7 min read

Benchmark: 12 Residential Proxies on Ecommerce Targets

A practical benchmark snapshot covering success rate, latency, and ban behavior across common ecommerce targets.

ProxyAudit Editorial Benchmarks

Here is a complete English article of about 1000 words about setting up proxies in Python:

How to Set Up a Proxy in Python: A Complete Beginner-Friendly Guide

When building automation tools, web scrapers, API testing scripts, or data collection systems with Python, proxies are often an important part of the workflow. A proxy acts as an intermediary server between your Python script and the website or service you are trying to access. Instead of sending a request directly from your real IP address, your script sends the request through a proxy server. The target website then sees the proxy IP address rather than your original one.

Setting up a proxy in Python is not difficult, but using it correctly requires understanding how proxies work, what types of proxies are available, and how to configure them with popular Python libraries such as requests, urllib, httpx, or Selenium. This guide explains the basic concept of proxies, common proxy formats, and practical ways to use proxies in Python.

What Is a Proxy in Python?

A proxy in Python is a network configuration that allows your Python program to route internet traffic through another server. For example, when your script sends a request to a website, the request first goes to the proxy server. The proxy server then forwards the request to the target website and sends the response back to your script.

This process can be useful in many scenarios. Developers use proxies to test how websites behave in different regions, manage request limits, protect the original server IP, monitor website availability, or collect public data more efficiently. For example, if you are building a price monitoring tool, an SEO rank tracking system, or a content aggregation script, proxies may help you avoid sending too many requests from a single IP address.

However, proxies should always be used responsibly. You should respect website terms of service, robots.txt rules, API limits, and local laws. A proxy is a technical tool, not a permission to bypass security, spam websites, or access restricted systems.

Common Types of Proxies

Before setting up a proxy in Python, it is useful to understand the main types of proxies.

The first type is an HTTP proxy. This type is designed for HTTP traffic and is commonly used for basic web requests. If your Python script is sending requests to non-secure URLs that begin with http://, an HTTP proxy may be enough.

The second type is an HTTPS proxy. Most modern websites use HTTPS, so this is the proxy type you will often work with. HTTPS proxies support secure connections and are commonly used with Python libraries such as requests.

The third type is a SOCKS proxy. SOCKS proxies are more flexible because they can handle different types of traffic beyond HTTP and HTTPS. To use SOCKS proxies in Python, you usually need to install additional dependencies, such as requests[socks].

There are also different proxy categories based on the source of the IP address. Datacenter proxies are hosted in data centers and are usually fast and affordable. Residential proxies use IP addresses associated with real internet service providers, making them more suitable for region-based testing or tasks that require a more natural IP profile. Mobile proxies route traffic through mobile networks and are often used for mobile app testing, ad verification, or location-sensitive testing.

Basic Proxy Format

Most proxy providers give proxy details in one of these formats:

http://IP_ADDRESS:PORT
http://USERNAME:PASSWORD@IP_ADDRESS:PORT

For example:

http://123.45.67.89:8080
http://user123:pass456@123.45.67.89:8080

If your proxy requires authentication, you must include the username and password in the proxy URL. Some proxy providers also use IP whitelisting, which means you do not need a username and password, but your server IP must be added to the provider’s allowed list.

Setting Up a Proxy with Python Requests

The requests library is one of the most popular Python libraries for sending HTTP requests. It is simple, readable, and suitable for many proxy use cases.

First, install the library if you do not already have it:

pip install requests

Here is a basic example of using a proxy with requests:

import requests

proxies = {
    "http": "http://123.45.67.89:8080",
    "https": "http://123.45.67.89:8080"
}

response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)

print(response.text)

In this example, the request is sent through the proxy server. The website httpbin.org/ip returns the IP address it sees. If the proxy is working correctly, the returned IP should be the proxy IP instead of your real IP.

Using an Authenticated Proxy

Many paid proxy services require authentication. In that case, you can include the username and password directly in the proxy URL:

import requests

proxies = {
    "http": "http://username:password@123.45.67.89:8080",
    "https": "http://username:password@123.45.67.89:8080"
}

response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)

print(response.text)

This is the simplest way to authenticate a proxy in Python. However, you should avoid hardcoding real usernames and passwords directly in your source code, especially if the code will be stored in GitHub or shared with a team. A safer approach is to store credentials in environment variables.

Example:

import os
import requests

proxy_user = os.getenv("PROXY_USER")
proxy_pass = os.getenv("PROXY_PASS")
proxy_host = os.getenv("PROXY_HOST")
proxy_port = os.getenv("PROXY_PORT")

proxy_url = f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"

proxies = {
    "http": proxy_url,
    "https": proxy_url
}

response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)

print(response.text)

This method is cleaner and more secure for production environments.

Using SOCKS Proxy in Python

If your proxy provider gives you a SOCKS5 proxy, you need to install SOCKS support for requests:

pip install "requests[socks]"

Then you can configure the proxy like this:

import requests

proxies = {
    "http": "socks5://username:password@123.45.67.89:1080",
    "https": "socks5://username:password@123.45.67.89:1080"
}

response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)

print(response.text)

SOCKS5 proxies are useful when you need more flexible traffic routing. However, for many standard web scraping or API tasks, HTTP and HTTPS proxies are enough.

Rotating Proxies in Python

If you need to send many requests, you may want to rotate proxies. Proxy rotation means using a different proxy IP for different requests. This can reduce the chance of hitting rate limits from a single IP address.

Here is a simple example:

import requests
import random

proxy_list = [
    "http://user:pass@111.111.111.111:8000",
    "http://user:pass@222.222.222.222:8000",
    "http://user:pass@333.333.333.333:8000"
]

url = "https://httpbin.org/ip"

proxy = random.choice(proxy_list)

proxies = {
    "http": proxy,
    "https": proxy
}

response = requests.get(url, proxies=proxies, timeout=10)

print(response.text)

For larger systems, you should also check whether a proxy is alive, track failed proxies, retry failed requests, and avoid overusing the same IP address. A good proxy rotation system usually includes error handling, timeout control, and logging.

Handling Common Proxy Errors

When working with proxies in Python, several errors may occur. A timeout error means the proxy is too slow or not responding. A connection error may indicate that the proxy address, port, or protocol is wrong. A 407 Proxy Authentication Required error usually means the username or password is incorrect. SSL errors may happen if the proxy does not support HTTPS properly or if the target website rejects the connection.

To make your script more stable, always use a timeout and exception handling:

import requests

proxies = {
    "http": "http://username:password@123.45.67.89:8080",
    "https": "http://username:password@123.45.67.89:8080"
}

try:
    response = requests.get(
        "https://httpbin.org/ip",
        proxies=proxies,
        timeout=10
    )
    response.raise_for_status()
    print(response.text)
except requests.exceptions.Timeout:
    print("The proxy connection timed out.")
except requests.exceptions.ProxyError:
    print("There was a proxy error.")
except requests.exceptions.RequestException as e:
    print(f"Request failed: {e}")

This structure helps prevent your script from crashing when a proxy fails.

Best Practices for Using Proxies in Python

When using proxies, stability and ethics are both important. Choose a reliable proxy provider, use the correct proxy type for your task, and avoid free public proxies for serious projects because they are often slow, unstable, or unsafe. Free proxies may also expose your data or stop working without warning.

You should also respect rate limits and avoid sending excessive requests. Even when using proxies, websites can detect abnormal behavior through request patterns, headers, cookies, browser fingerprints, and session activity. For professional use cases, combine proxy usage with proper request delays, realistic headers, and responsible data collection practices.

For sensitive projects, never expose proxy credentials in your codebase. Use environment variables, secret managers, or configuration files that are excluded from version control.

Conclusion

Setting up a proxy in Python is straightforward once you understand the basic structure. With the requests library, you can configure HTTP, HTTPS, and SOCKS proxies using a simple proxies dictionary. For more advanced use cases, you can rotate proxies, handle failures, and store credentials securely.

Proxies are useful for testing, automation, data collection, SEO tools, and region-based website analysis. However, they should always be used responsibly and legally. A well-designed proxy setup is not just about changing IP addresses; it is about building a stable, secure, and ethical request system that works reliably in real-world conditions.

Need a provider shortlist?

Compare pricing, benchmark notes, and provider fit before buying traffic.

Browse Reviews
ProxyAudit Editorial
ProxyAudit Editorial
ProxyAudit Editorial

Research notes are reviewed against the same provider dataset, benchmark fields, and editorial standards used across ProxyAudit.

Leave a Reply

Your email address will not be published. Required fields are marked *