Scrapy
Integre o Scrapy com Proxies da Oxylabs para criar crawlers web rápidos e assíncronos usando um guia passo a passo simples.
Scrapy é um framework Python de código aberto projetado para web scraping e extração de dados em grande escala. Por padrão, o Scrapy roteia as solicitações diretamente da sua rede local.
Siga as etapas abaixo para integrar os seguintes proxies da Oxylabs:
Escolha o método de integração
O Scrapy oferece dois métodos principais para rotear solicitações por meio de proxies: Parâmetro Meta da Request (configuração por solicitação) e Middleware personalizado do Downloader (configuração em todo o projeto).
Método 1: Parâmetro Meta da Request
Passe os detalhes de autenticação do proxy diretamente para instâncias individuais scrapy.Request por meio do meta dicionário. Este método é recomendado para spiders simples ou quando diferentes solicitações exigem configurações específicas de proxy.
import scrapy
class OxylabsSpider(scrapy.Spider):
name = "oxylabs_spider"
def start_requests(self):
url = "https://ip.oxylabs.io/"
proxy = "http://username:password@host:port"
yield scrapy.Request(
url=url,
callback=self.parse,
meta={"proxy": proxy}
)
def parse(self, response):
ip_address = response.css("pre::text").get()
self.logger.info(f"Connected via Oxylabs Proxy. Active IP: {ip_address}")Método 2: Middleware personalizado do Downloader (recomendado)
Para aplicar proxies automaticamente em todas as solicitações sem alterar o código da spider, implemente um Middleware personalizado do Downloader do Scrapy.
Abra o arquivo do seu projeto Scrapy middlewares.py e adicione o OxylabsProxyMiddleware classe:
class OxylabsProxyMiddleware:
@classmethod
def from_crawler(cls, crawler):
return cls(crawler.settings)
def __init__(self, settings):
self.username = settings.get("OXYLABS_USERNAME")
self.password = settings.get("OXYLABS_PASSWORD")
self.endpoint = settings.get("OXYLABS_ENDPOINT")
def process_request(self, request, spider):
host = f"http://{self.username}:{self.password}@{self.endpoint}"
request.meta["proxy"] = hostEm seguida, registre o middleware e defina suas credenciais de proxy em settings.py:
# Oxylabs Credentials
OXYLABS_USERNAME = "username"
OXYLABS_PASSWORD = "password"
OXYLABS_ENDPOINT = "host:port"
# Enable Downloader Middleware
DOWNLOADER_MIDDLEWARES = {
"myproject.middlewares.OxylabsProxyMiddleware": 100,
"scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 110,
}Configure seu proxy
Ajuste os detalhes do proxy e as credenciais do usuário do proxy da Oxylabs (criadas no painel da Oxylabs) para o tipo de proxy escolhido:
Residential & Mobile Proxies
Host: pr.oxylabs.io
Porta: 7777
Nome de usuário: customer-username
Senha: senha
Observação: Não se esqueça de adicionar customer- prefixo ao seu nome de usuário.
Você também pode usar parâmetros adicionais com proxies residenciais e móveis para definir a geolocalização (país, estado, cidade etc.) e controlar sessões. Confira o para saber mais. para saber mais. A tabela abaixo apresenta uma visão geral dos parâmetros disponíveis e seus valores de exemplo.
Host: us-pr.oxylabs.io
Porta: 10000
Usuário: customer-username-cc-US
Usuário: customer-username-st-US_texas
Usuário: customer-username-city-paris
Usuário: customer-username-cn-NA
Usuário: customer-username-cc-US-postalcode-90210
Usuário: customer-username-ASN-21928
Sessão (até 1440 minutos)
Usuário: customer-username-sessid-qwerty123-sesstime-1440
Host: us-pr.oxylabs.io
Porta: 10001
Datacenter Proxies
Host: dc.oxylabs.io
Porta: 8001
Nome de usuário: user-userername
Senha: senha
Observação: Não se esqueça de adicionar user- prefixo ao seu nome de usuário.
A porta é o número sequencial atribuído a um endereço IP da lista de proxies adquirida. Assim, a porta 8001 usa o primeiro endereço IP da sua lista. Você também pode ativar de IP do proxy definindo a porta como 8000.
Além disso, você pode especificar o geolocalização, por exemplo, os EUA, definindo o Nome de usuário do proxy para user-USERNAME-country-US.
A porta 8001 escolhe um endereço IP aleatório, mas permanece consistente durante uma sessão. Como alternativa, você pode alternar os IPs do proxy a cada solicitação usando a porta 8000.
Se você quiser usar um geolocalização, por exemplo, os EUA, defina o nome de usuário do proxy como user-USERNAME-country-US.
Dedicated Datacenter Proxies (Empresarial)
Host: 1.2.3.4 (endereço IP da sua lista de proxies adquirida)
Porta: 60000 (HTTP) ou 1180 USERNAME
Nome de usuário: nome de usuário
Senha: senha
Para Enterprise Dedicated Datacenter Proxies (adquiridos por meio da equipe de vendas), você terá que escolher um endereço IP do conjunto adquirido lista de proxies adquirida.
Dedicated Datacenter Proxies (Autoatendimento)
Host: ddc.oxylabs.io
Porta: 8001
Nome de usuário: user-userername
Senha: senha
Observação: Não se esqueça de adicionar user- prefixo ao seu nome de usuário.
Para Self-Service Dedicated Datacenter Proxies (adquiridos pelo painel da Oxylabs), a porta indica o número sequencial de um endereço IP do conjunto adquirido lista de proxies adquirida. Se você quiser obter um IP diferente a cada solicitação, altere a Porta para 8000 para ativar rotação de proxy.
ISP Proxies
Host: isp.oxylabs.io
Porta: 8001
Nome de usuário: user-username
Senha: senha
Observação: Não se esqueça de adicionar user- prefixo ao seu nome de usuário.
Com ISP Proxies, a porta é atribuída a um endereço IP específico e à sua localização. Portanto, a porta 8001 sempre escolherá o primeiro IP da sua lista de proxies adquirida.
Se você quiser obter um IP diferente a cada solicitação, altere a Porta para 8000 para ativar rotação de proxy.
Dedicated ISP Proxies
Host: disp.oxylabs.io
Porta: 8001
Nome de usuário: user-USERNAME
Senha: PASSWORD
Observação: Não se esqueça de adicionar user- prefixo ao seu nome de usuário.
Você precisará escolher a porta atribuída a um endereço IP da lista comprada lista de proxies adquirida, que você pode encontrar no painel da Oxylabs. A 8001 porta selecionará o primeiro endereço IP da sua lista para todas as solicitações. Use a porta 8000 para rotação automática de IP do proxy.
Atualizado
Isto foi útil?

