Use a Shifter com Python
Integre os proxies residenciais e ISP do Shifter aos seus scripts Python em minutos. Funciona perfeitamente com requests, aiohttp, Scrapy, Selenium e todas as principais bibliotecas HTTP do Python.
Início Rápido
Instalar
pip install requests Uso Básico
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", ...} Recursos
Exemplos
Solicitações Básicas
A forma mais simples de usar os proxies da Shifter com a biblioteca HTTP mais popular do Python. Defina país, região, cidade ou ASN diretamente no nome de usuário e passe um `sid` para manter o mesmo IP entre as requisições.
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)}") Async com aiohttp + Sticky Sessions
Use aiohttp para scraping assíncrono de alto desempenho. Adicione `sid-XXX` ao nome de usuário para manter o mesmo IP entre requisições, ou `ttl-N` para uma sessão persistente temporizada de N segundos.
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()) Scrapy Middleware
Integre os proxies do Shifter aos seus spiders Scrapy com um middleware de downloader personalizado. Faça geo-targeting adicionando seletores como `country-uk`, `region-bavaria`, `city-london` ou `asn-7922` ao nome de usuário, e fixe a sessão com um `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
Direcione a automação de navegador do Selenium através dos proxies do Shifter. Ideal para fazer scraping de páginas renderizadas com JavaScript. Combine a segmentação em nível de cidade com um `sid` para manter o mesmo IP durante toda a sessão do navegador.
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() Perguntas frequentes
Perguntas comuns sobre usar o Shifter com Python.
Passe um dicionário de proxies para qualquer método requests com sua URL de proxy Shifter. O formato é: 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"}. Depois chame requests.get(url, proxies=proxies).
Sim. Os proxies da Shifter funcionam com todas as bibliotecas HTTP assíncronas do Python, incluindo aiohttp, httpx e Twisted. Passe a URL do proxy usando o parâmetro proxy da biblioteca. Para aiohttp, use o argumento proxy em session.get(). Para httpx, configure os proxies no construtor do Client.
O gateway de proxy rotativo da Shifter gerencia a rotação de IP automaticamente. Por padrão, ele rotaciona a cada requisição, ou você pode controlá-la via ID de sessão (sid) ou tempo de vida (ttl). Nenhum código adicional é necessário.
Sim. Você pode integrar o Shifter ao Scrapy criando um middleware de downloader simples que define request.meta['proxy'] como a URL de proxy do Shifter. Adicione o middleware à sua configuração DOWNLOADER_MIDDLEWARES e toda solicitação do Scrapy será automaticamente roteada pelos proxies residenciais do Shifter.
Sim. Configure o WebDriver do Chrome ou Firefox no Selenium para usar o Shifter como proxy HTTP através das opções do navegador. Para o Chrome, use a flag --proxy-server no ChromeOptions. Para proxies autenticados, você pode usar uma extensão de navegador ou o wire protocol para passar as credenciais.
Os proxies do Shifter funcionam com qualquer versão do Python que suporte proxies HTTP, o que inclui Python 3.7 e superior. O proxy é configurado no nível HTTP, portanto é compatível com todas as bibliotecas HTTP do Python, independentemente da versão. Nenhum SDK ou pacote especial é necessário além do seu cliente HTTP preferido.
Comece a Usar o Shifter com Python
Integre os mais de 205 milhões de proxies residenciais do Shifter aos seus scripts Python em menos de 5 minutos. Rotação de IP flexível, geo-targeting e compatibilidade total com todas as principais bibliotecas Python.