For the complete documentation index, see llms.txt. This page is also available as Markdown.

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:

1

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"] = host

Em 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,
}
2

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

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.

Parâmetro de proxy
Exemplo

Nó de entrada do país

Host: us-pr.oxylabs.io

Porta: 10000

País

Usuário: customer-username-cc-US

Estado

Usuário: customer-username-st-US_texas

Cidade

Usuário: customer-username-city-paris

Continente

Usuário: customer-username-cn-NA

CEP/Código postal

Usuário: customer-username-cc-US-postalcode-90210

Segmentação ASN

Usuário: customer-username-ASN-21928

Sessão (até 1440 minutos)

Usuário: customer-username-sessid-qwerty123-sesstime-1440

Sessão persistente

Host: us-pr.oxylabs.io

Porta: 10001

Datacenter Proxies

Host: dc.oxylabs.io

Porta: 8001

Nome de usuário: user-userername

Senha: senha

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

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

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

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.

3

Execute a spider

Execute sua spider do Scrapy no terminal usando o crawl comando:

scrapy crawl oxylabs_spider

Se configurado corretamente, o Scrapy executará as solicitações por meio do gateway de proxy da Oxylabs e registrará o endereço IP externo de saída atribuído.

Atualizado

Isto foi útil?