Intégration de Proxy dans Scrapy : Le Guide Ultime

Découvrez comment mettre en place une rotation de proxy (Proxy Rotation) efficace dans vos projets Scrapy pour une collecte de données massive et fiable.

Rendez vos spiders Scrapy surpuissants et totalement indétectables avec nos proxys rotatifs !

  • Intégration via Middleware

    Utilisez notre exemple de middleware prêt à l'emploi pour ajouter des capacités de proxy à votre projet Scrapy en quelques minutes.
  • Rotation Avancée

    Implémentez facilement une stratégie de rotation de proxy pour que chaque requête de votre spider provienne d'une adresse IP unique.
  • Haute Performance

    Bénéficiez de connexions à faible latence et d'un pool d'IPs de haute qualité pour un scraping rapide et sans erreurs.

Dans le domaine du data scraping, un spider Scrapy n'est performant que si son proxy l'est aussi. Un bon proxy scrapy n'est pas une option, c'est la fondation qui garantit que vos spiders rapportent des données, pas des erreurs de connexion.

Tarifs

Sélectionnez les proxys par pays, avec des options pour filtrer par opérateur mobile et type de proxy.

Parfait pour la gestion des médias sociaux, des sites de petites annonces et des réseaux publicitaires.

Pays disponibles Le monde entier
dès  $0.72
Canal commun
  • Les adresses IP tournent automatiquement toutes les 2 à 5 minutes

  • Un seul appareil mobile est divisé en cinq proxys partagés

  • Pas de changement d'IP via API ou lien

Commander un proxy
dès  $1
Canal privé
  • Le seul proxy sur un appareil mobile

  • Configurez la rotation automatique entre 1 et 30 minutes, avec une option pour la désactiver.

  • Changer l'IP par API ou lien

Commander un proxy
dès  $3
Canal commun
  • Rotation automatique de l'IP toutes les 2-5 minutes

  • Un appareil mobile est divisé en 5 proxys partagés

  • Pas de changement d'IP via API ou lien

Commander un proxy
dès  $12
Canal privé
  • Le seul proxy sur un appareil mobile

  • Setting up automatic rotation dès 1 to 30 minutes with the ability to turn off.

  • Changer l'IP par API ou lien

Commander un proxy
dès  $5.9
Canal commun
  • Rotation automatique de l'IP toutes les 2-5 minutes

  • Un appareil mobile est divisé en 5 proxys partagés

  • Pas de changement d'IP via API ou lien

Commander un proxy
dès  $29
Canal privé
  • Le seul proxy sur un appareil mobile

  • Setting up automatic rotation dès 1 to 30 minutes with the ability to turn off.

  • Changer l'IP par API ou lien

Commander un proxy
dès  $8.3
Canal commun
  • Rotation automatique de l'IP toutes les 2-5 minutes

  • Un appareil mobile est divisé en 5 proxys partagés

  • Pas de changement d'IP via API ou lien

Commander un proxy
dès  $32
Canal privé
  • Le seul proxy sur un appareil mobile

  • Setting up automatic rotation dès 1 to 30 minutes with the ability to turn off.

  • Changer l'IP par API ou lien

Commander un proxy

Une solution conçue pour les développeurs Scrapy exigeants

Notre service de proxy Scrapy est optimisé pour la collecte de données à haute performance, vous fournissant l'infrastructure nécessaire pour surmonter les obstacles du web scraping moderne.

  • Middleware Python customisé
  • Support SOCKS5 & HTTP
  • Gestion des bannissements

Passez à la vitesse supérieure. Essayez nos proxys pour 1$ et donnez à vos spiders Scrapy la puissance qu'ils méritent.

Commander un proxy

Cas d'utilisation courants des proxys mobiles

Configurez des comptes publicitaires et passez la modération sur les principales plateformes comme Google, Facebook et Instagram en utilisant des outils comme Multilogin, VMLogin, Insomniac, GoLogin, AdsPower et Aezakmi, associés aux proxys mobiles de OnlineProxy.io

Collectez des données sur des plateformes hautement sécurisées en utilisant les proxys mobiles de OnlineProxy.io avec des outils comme Octoparse, Scrapebox, Webscrapper, Browse.ai, Webharvy et Selenium

Scrapez les résultats de recherche de n'importe quelle région ou appareil avec les proxys mobiles de OnlineProxy.io, compatibles avec des outils comme Ctr Booster, Zennoposter Pro, Ahrefs, Moz, Majestic SEO, Netpeak Spider, SE Ranking, Serpstat, Buzzsumo, SEOquake, Key Collector, Active Webtraffic, SEO PowerSuite Free, AIPRM for SEO, Ubersuggest, KDP/Amazon BSR & Keyword Research SEO Tool et SEnuke TNG

Achetez des baskets exclusives avec des bots en utilisant les proxys mobiles de OnlineProxy.io, compatibles avec Wrath AIO Bot, Prism AIO, Kodai AIO, MEKpreme, Balkobot, Ganesh Bot, Nike Shoe Bot, Project Enigma, MEKAIO, Sole AIO, Kodai et Velox.

Émulez sans effort différents emplacements et appareils mobiles tout en changeant votre adresse IP. Compatible avec des outils essentiels comme Proxifier, SwitchyOmega, GoLogin, Jarvee, Postern APP, AdsPower, AEZAKMI, Multi-Login et Foxyproxy - tous optimisés pour fonctionner de manière transparente avec les proxys mobiles de OnlineProxy.io

Créez et gérez en toute sécurité des comptes de médias sociaux avec un risque de bannissement minimal. Intégrez les proxys mobiles de OnlineProxy.io avec des outils puissants comme All Social Networks, Follow Liker, Monstro, Followinglike, Useviral, Nextpost, Kenji, Followadder, Kicksta, Nitreo, Growthoid, Socialcaptain, Upleap et Instaccountsmanager pour une sécurité et des performances de compte optimales

 
 
  •                  

    Rotation d'IP

     

    Contrôlez la rotation des IP pour les proxys privés en un seul clic dans notre tableau de bord ou configurez des changements automatisés via notre intégration API efficace.

  •          

    Trafic illimité

     

    Utilisez les proxys sans limites : nous garantissons un fonctionnement ininterrompu sans déconnexions, même avec des volumes de trafic élevés !

  •          

    Pas de bannissement ni de captcha

     

    Nos proxys utilisent des adresses IP légitimes de réseaux mobiles, ce qui diminue considérablement la probabilité de bannissement et de déclenchement de CAPTCHA, tout en garantissant que les sites web vous reconnaissent comme un visiteur authentique.

  •  
 
 
cabinet
 

Questions fréquemment posées

La méthode la plus robuste et la plus flexible est de créer un "Downloader Middleware" personnalisé. Cela vous permet de contrôler quelle requête utilise quel proxy et de mettre en place une logique de rotation et de gestion des erreurs. 

Dans un middleware personnalisé, vous pouvez maintenir une liste de vos proxys. Pour chaque requête traitée par la méthode process_request, vous sélectionnez un proxy de cette liste (par exemple, de manière séquentielle ou aléatoire) et l'assignez à request.meta['proxy']

Pour un scrapy http proxy, vous pouvez ajouter un en-tête Proxy-Authorization à la requête. La méthode la plus propre est de le construire avec un encodage Base64 de votre username:password, comme montré dans notre exemple de code. 

Nativement, non. Cependant, vous pouvez facilement ajouter le support du scrapy socks5 proxy en installant la bibliothèque Python PySocks (pip install PySocks). Ensuite, il vous suffit de spécifier le schéma socks5:// dans l'URL du proxy (ex: request.meta['proxy'] = 'socks5://host:port'). 

Vous pouvez la coder directement dans votre middleware pour commencer, mais une meilleure pratique consiste à la charger depuis settings.py ou un fichier externe. Cela rend votre middleware plus réutilisable et facilite la mise à jour de votre liste de proxys. 

Dans votre middleware, vous pouvez implémenter la méthode process_exception ou process_response. Si une requête échoue à cause d'un problème de proxy, vous pouvez y ajouter une logique pour retirer le proxy défectueux de votre liste de rotation afin de ne plus l'utiliser. 

Le proxy HTTP est conçu spécifiquement pour le trafic web (protocoles HTTP/HTTPS). Le proxy SOCKS5 fonctionne à un niveau plus bas et peut acheminer n'importe quel type de trafic, ce qui le rend plus polyvalent. Pour le web scraping avec Scrapy, les deux fonctionnent bien. 

Oui. Vous pouvez passer le proxy directement dans la méta-donnée de votre requête : yield scrapy.Request(url, meta={'proxy': 'http://host:port'}). Cependant, cette méthode n'est pas pratique pour gérer la rotation et l'authentification à grande échelle.

Scrapy & Proxys : Le Duo Indispensable pour le Web Scraping Professionnel

Scrapy est l'un des frameworks de web scraping les plus puissants et les plus populaires de l'écosystème Python. Il permet de construire des "spiders" (robots d'exploration) capables de naviguer sur des sites et d'en extraire des données structurées de manière efficace. Cependant, tout développeur Scrapy expérimenté se heurte rapidement à un mur : les blocages d'IP. Les sites web modernes sont conçus pour détecter et bloquer l'activité de scraping intensive provenant d'une seule adresse IP. C'est pourquoi l'intégration d'un scrapy proxy n'est pas une option, mais une nécessité absolue pour tout projet sérieux.

L'utilisation d'un proxy scrapy permet à votre spider d'envoyer ses requêtes via une multitude d'adresses IP différentes. Pour le site cible, votre activité ressemble à celle de nombreux utilisateurs distincts, ce qui réduit considérablement le risque de se faire bannir ou de se voir présenter des CAPTCHAs.

La Méthode la Plus Robuste : Le Middleware Scrapy

Bien qu'il soit possible de définir un proxy unique dans les méta-données d'une requête, cette méthode n'est pas scalable. La meilleure approche pour un projet python scrapy proxy est de créer un "Middleware" personnalisé. Un Middleware est un composant qui s'intercale dans le processus de traitement des requêtes et des réponses de Scrapy, vous donnant un contrôle total sur la manière dont les requêtes sont envoyées.

Un middleware de proxy vous permettra de mettre en place une logique de scrapy proxy rotation, c'est-à-dire de choisir une nouvelle adresse IP de proxy pour chaque requête (ou après un certain nombre de tentatives infructueuses).

Exemple de Middleware de Proxy pour Scrapy (HTTP/HTTPS)

Voici un exemple de middleware simple mais puissant qui gère une liste de proxys HTTP/HTTPS avec authentification. Vous pouvez placer ce code dans un fichier `middlewares.py` de votre projet Scrapy.


import base64
from itertools import cycle

class ProxyRotationMiddleware:
    # Liste de vos proxys au format "HOST:PORT"
    PROXY_LIST = [
        'proxy1.host:port', 
        'proxy2.host:port',
        # ... ajoutez autant de proxys que vous le souhaitez
    ]
    
    # Si vos proxys nécessitent une authentification
    PROXY_USERNAME = 'VOTRE_USERNAME'
    PROXY_PASSWORD = 'VOTRE_MOT_DE_PASSE'

    def __init__(self):
        self.proxy_pool = cycle(self.PROXY_LIST)
        # Préparez l'en-tête d'authentification une seule fois
        if self.PROXY_USERNAME and self.PROXY_PASSWORD:
            self.auth_header = self._get_auth_header()

    def _get_auth_header(self):
        auth_str = f"{self.PROXY_USERNAME}:{self.PROXY_PASSWORD}"
        encoded_auth = base64.b64encode(auth_str.encode('utf-8')).decode('utf-8')
        return f"Basic {encoded_auth}"

    @classmethod
    def from_crawler(cls, crawler):
        return cls()

    def process_request(self, request, spider):
        # Ne pas utiliser de proxy pour les requêtes déjà échouées ou redirigées
        if 'proxy' in request.meta:
            return

        # Sélectionnez le prochain proxy dans la liste
        proxy_address = next(self.proxy_pool)
        
        # Définissez le proxy pour la requête
        request.meta['proxy'] = f"http://{proxy_address}"
        spider.logger.info(f"Using proxy: {proxy_address}")
        
        # Ajoutez l'en-tête d'authentification si nécessaire
        if hasattr(self, 'auth_header'):
            request.headers['Proxy-Authorization'] = self.auth_header

    def process_exception(self, request, exception, spider):
        # En cas d'erreur avec un proxy, vous pourriez vouloir le retirer de la liste
        # ou simplement réessayer la requête (Scrapy le fait par défaut)
        proxy = request.meta.get('proxy')
        spider.logger.warning(f"Exception with proxy {proxy}: {exception}")
        # Optionnel : Ajoutez une logique pour gérer les mauvais proxys
    

Activation du Middleware

Pour activer votre middleware, vous devez le déclarer dans le fichier `settings.py` de votre projet Scrapy. Assurez-vous de lui donner une priorité élevée pour qu'il s'exécute avant les autres middlewares de requêtes.


# settings.py
DOWNLOADER_MIDDLEWARES = {
    'votre_projet.middlewares.ProxyRotationMiddleware': 610,
    # Assurez-vous que le middleware HttpProxy de Scrapy est également activé
    'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750,
}
    

Gérer le `Scrapy SOCKS5 Proxy`

Le middleware ci-dessus est conçu pour un scrapy http proxy. Si vous devez utiliser des proxys SOCKS5, l'approche est légèrement différente car Scrapy ne prend pas en charge SOCKS5 nativement. Vous devrez installer une bibliothèque supplémentaire (`pip install PySocks`) et spécifier le schéma `socks5://` dans l'URL du proxy dans votre middleware (`request.meta['proxy'] = f"socks5://{proxy_address}"`).

Conclusion : La Clé du Scraping à Grande Échelle

La maîtrise de l'intégration de proxys est ce qui distingue un projet de scraping amateur d'une application de collecte de données de niveau professionnel. En implémentant un middleware de scrapy proxy rotation, vous donnez à vos spiders la résilience nécessaire pour surmonter les défenses des sites web modernes. L'utilisation d'un service de proxy de haute qualité, avec un grand pool d'adresses IP fiables et des connexions rapides, est l'autre moitié de l'équation. En combinant la puissance de Scrapy avec une stratégie de proxy intelligente, vous êtes équipé pour collecter les données dont vous avez besoin, quelle que soit l'échelle de votre projet.