Les proxys dans Scrapy
HttpProxyMiddleware est actif par défaut — il suffit de mettre la chaîne de connexion dans le meta de la requête.
Une araignée minimale
Rien à activer : HttpProxyMiddleware fait partie du pipeline par défaut et lit la clé proxy dans meta. Les identifiants vont dans l’adresse, exactement comme dans une chaîne de connexion ordinaire.
import scrapy
class IpSpider(scrapy.Spider):
name = "ip"
proxy = "http://LOGIN__cr.de:PASSWORD@gw.dataimpulse.com:823"
def start_requests(self):
yield scrapy.Request(
"https://ipinfo.io/json",
meta={"proxy": self.proxy},
)
def parse(self, response):
self.logger.info(response.text)À garder en tête pendant le scraping
Une nouvelle tentative sur le port 823 arrive d’une autre adresse — c’est la rotation qui fonctionne, pas une panne. Les reprises de Scrapy se comportent correctement ici, mais rien ne doit dépendre du fait que l’adresse reste la même entre deux requêtes ; les ports fixes 10000–20000 sont là pour ça.
Réglez DOWNLOAD_TIMEOUT largement : une sortie résidentielle répond plus lentement qu’un datacenter, et une requête sans délai peut rester bloquée plusieurs minutes. L’offre autorise jusqu’à deux mille connexions simultanées, un seuil que le scraping ordinaire n’approche pas.