Intégration

Utilisez Shifter avec Python

Intégrez les proxies résidentiels et ISP de Shifter dans vos scripts Python en quelques minutes. Fonctionne parfaitement avec requests, aiohttp, Scrapy, Selenium et toutes les principales bibliothèques HTTP Python.

Démarrage rapide

Installer

pip install requests

Utilisation de base

import requests

proxy_url = "customer-USERNAME-country-us-sid-123ABC:PASSWORD@p.shifter.io:443"

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

response = requests.get("https://ipinfo.io/json", proxies=proxies)
print(response.json())
# {"ip": "154.16.xxx.xxx", "city": "New York", "country": "US", ...}

Fonctionnalités

Compatible avec toutes les bibliothèques HTTP Python, notamment requests, aiohttp, httpx et urllib3
Rotation automatique des IP par requête, par session (sid) ou via des sessions persistantes configurables (ttl)
Prise en charge complète des protocoles proxy HTTP et SOCKS5
Compatible avec Python 3.7+ et tous les principaux frameworks de scraping comme Scrapy et BeautifulSoup
Prise en charge du géociblage, sélectionnez des proxies dans 195+ pays via de simples paramètres de nom d'utilisateur
Aucun SDK supplémentaire requis, configurez Shifter à l'aide des variables d'environnement proxy standard ou des paramètres en ligne

Exemples

Requêtes de base

La façon la plus simple d'utiliser les proxies Shifter avec la bibliothèque HTTP la plus populaire de Python. Définissez le pays, la région, la ville ou l'ASN directement dans le nom d'utilisateur et passez un `sid` pour conserver la même IP entre les requêtes.

import requests

PROXY_USER = "customer-USERNAME-country-us-sid-123ABC"
PROXY_PASS = "PASSWORD"
PROXY_HOST = "p.shifter.io"
PROXY_PORT = "443"

proxies = {
    "http": f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}",
    "https": f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}",
}

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}

response = requests.get(
    "https://example.com",
    proxies=proxies,
    headers=headers,
    timeout=30,
)

print(f"Status: {response.status_code}")
print(f"Content length: {len(response.text)}")

Asynchrone avec aiohttp + sessions persistantes

Utilisez aiohttp pour un scraping asynchrone haute performance. Ajoutez `sid-XXX` au nom d'utilisateur pour conserver la même IP entre les requêtes, ou `ttl-N` pour une session persistante minutée de N secondes.

import aiohttp
import asyncio
import uuid

# sid pins the same IP for every request that shares this session id;
# ttl-300 keeps that IP for up to 300 seconds, then rotates.
session_id = uuid.uuid4().hex[:8]
PROXY_URL = (
    f"customer-USERNAME-country-us-sid-{session_id}-ttl-300:"
    f"PASSWORD@p.shifter.io:443"
)

async def fetch(session, url):
    async with session.get(
        url, proxy=PROXY_URL, timeout=aiohttp.ClientTimeout(total=30)
    ) as response:
        return await response.text()

async def main():
    urls = [
        "https://example.com/login",
        "https://example.com/dashboard",
        "https://example.com/orders",
    ]

    async with aiohttp.ClientSession() as session:
        tasks = [fetch(session, url) for url in urls]
        results = await asyncio.gather(*tasks, return_exceptions=True)

        for url, result in zip(urls, results):
            if isinstance(result, Exception):
                print(f"Error fetching {url}: {result}")
            else:
                print(f"Fetched {url}: {len(result)} bytes")

asyncio.run(main())

Middleware Scrapy

Intégrez les proxies Shifter dans vos spiders Scrapy avec un middleware de téléchargement personnalisé. Ciblez géographiquement en ajoutant des sélecteurs comme `country-uk`, `region-bavaria`, `city-london` ou `asn-7922` au nom d'utilisateur, et épinglez la session avec un `sid`.

# middlewares.py
class ShifterProxyMiddleware:
    PROXY_USER = "customer-USERNAME-country-uk-sid-456DEF"
    PROXY_PASS = "PASSWORD"
    PROXY_HOST = "p.shifter.io"
    PROXY_PORT = "443"

    def process_request(self, request, spider):
        request.meta["proxy"] = (
            f"http://{self.PROXY_USER}:{self.PROXY_PASS}"
            f"@{self.PROXY_HOST}:{self.PROXY_PORT}"
        )

# settings.py
DOWNLOADER_MIDDLEWARES = {
    "myproject.middlewares.ShifterProxyMiddleware": 350,
}

# spider.py
import scrapy

class ProductSpider(scrapy.Spider):
    name = "products"
    start_urls = ["https://example.co.uk/products"]

    def parse(self, response):
        for product in response.css(".product-card"):
            yield {
                "title": product.css("h2::text").get(),
                "price": product.css(".price::text").get(),
                "url": product.css("a::attr(href)").get(),
            }

        next_page = response.css("a.next-page::attr(href)").get()
        if next_page:
            yield response.follow(next_page, self.parse)

Selenium WebDriver

Routez l'automatisation du navigateur Selenium via les proxies Shifter. Idéal pour scraper des pages rendues en JavaScript. Combinez le ciblage au niveau de la ville avec un `sid` pour conserver la même IP pendant toute la session du navigateur.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

PROXY_HOST = "p.shifter.io"
PROXY_PORT = "443"
PROXY_USER = "customer-USERNAME-country-us-city-newyork-sid-789GHI"
PROXY_PASS = "PASSWORD"

chrome_options = Options()
chrome_options.add_argument(
    f"--proxy-server=http://{PROXY_HOST}:{PROXY_PORT}"
)

driver = webdriver.Chrome(options=chrome_options)

# Handle proxy authentication via browser extension or seleniumwire if needed
driver.get("https://example.com")

# Wait for dynamic content to load
wait = WebDriverWait(driver, 10)
element = wait.until(
    EC.presence_of_element_located((By.CSS_SELECTOR, ".content"))
)

print(f"Page title: {driver.title}")
print(f"Content: {element.text[:200]}")

driver.quit()
FAQ

Questions fréquentes Questions FAQ

Questions fréquentes sur l'utilisation de Shifter avec Python.

Passez un dictionnaire proxies à n'importe quelle méthode requests avec votre URL de proxy Shifter. Le format est : proxies = {"http": "customer-USERNAME-country-us-sid-123ABC:PASSWORD@p.shifter.io:443", "https": "customer-USERNAME-country-us-sid-123ABC:PASSWORD@p.shifter.io:443"}. Appelez ensuite requests.get(url, proxies=proxies).

Commencer

Commencer à utiliser Shifter avec Python

Intégrez les proxies résidentiels 205M+ de Shifter dans vos scripts Python en moins de 5 minutes. Rotation d'IP flexible, géociblage et compatibilité totale avec toutes les principales bibliothèques Python.

Essayez Shifter gratuitementConfiguration en quelques minutes. Annulez à tout moment.