La rotation au niveau de la liste
ProxySale fait tourner les proxys par la liste elle-même. Le pool perd des adresses mortes et en gagne de nouvelles toute la journée, et chaque fois que votre logiciel appelle le lien, il reçoit l’ensemble qui fonctionne à ce moment. Vous ne réglez aucune règle de rotation chez nous : rechargez le lien à intervalle de 8 à 10 minutes pour garder une liste fraîche.
Votre logiciel choisit ensuite la ligne pour chaque requête. La plupart des scrapers et outils SEO prennent un proxy au hasard par requête ou en changent après une erreur, et la charge se répartit sur des milliers d’adresses.
Pourquoi les proxys rotatifs aident les scrapers
Moteurs de recherche, places de marché et comparateurs de prix comptent les requêtes par IP. Une adresse qui envoie des centaines de requêtes par minute finit sur un captcha ou un blocage. Répartissez la même charge sur une liste de proxys rotatifs : chaque adresse n’en envoie que quelques-unes, et la cible voit quelque chose de proche de visiteurs ordinaires.
La rotation masque aussi les lignes mortes. Une requête qui échoue repart par une autre adresse, et le rechargement suivant de la liste écarte la mauvaise ligne.
Mettre en place la rotation dans votre logiciel
- A-Parser et ZennoPoster : ajoutez le lien de la liste comme source de proxys avec un rechargement toutes les 10 minutes.
- Scrapy : chargez la liste dans un downloader middleware qui prend une ligne au hasard par requête.
- Python requests : gardez la liste en mémoire et passez une ligne au hasard dans le dictionnaire proxies.
- curl en bash : prenez une ligne avec
shuf -n 1avant chaque appel.
Laissez le rechargement à 8 à 10 minutes. Nous limitons les requêtes qui arrivent chaque minute, et le pool ne change de toute façon pas aussi vite.
Stratégies de rotation
- Une ligne au hasard par requête : le schéma le plus simple, avec la charge la plus égale.
- Une ligne pour une courte série : utile quand un site attend quelques requêtes liées, comme une page de recherche puis la page de résultats suivante.
- Changement sur erreur : garder une ligne tant qu’elle répond et l’écarter après un captcha, un délai dépassé ou un 403.
- Mise au repos : après un blocage, sortir l’adresse de la rotation pendant 10 à 15 minutes.
La plupart des scrapers combinent la première et la troisième : une ligne au hasard par requête et un changement immédiat après une erreur. Surveillez la part de captchas et de requêtes ratées. Si elle grimpe, ajoutez des adresses ou ralentissez.
Combien d’adresses il vous faut
Comptez les requêtes par minute vers votre cible la plus difficile et divisez-les par ce qu’une adresse peut envoyer sans ennui. Si un site tolère cinq requêtes par minute depuis une IP et qu’il vous en faut 5 000, prévoyez au moins 1 000 adresses vivantes, plus une marge pour le creux de la nuit. Les plus gros chantiers sont traités sur la page proxys en gros.
Choisissez le pool selon la cible : World MIX pour les sites mondiaux, les proxys Europe pour les boutiques et la recherche dans l’UE, les proxys CEI pour Yandex et les places de marché régionales, les proxys Chine pour Baidu.
Les tâches qui demandent une adresse fixe
Certains travaux demandent longtemps la même adresse : se connecter à des comptes, garder un panier, faire tourner des profils de navigateur antidetect. Une liste rotative de forfait s’y prête mal, car l’adresse peut quitter le pool. Pour ce travail, prenez des proxys résidentiels du pool Max : chaque ligne a sa propre session, d’une durée de trois minutes à une journée, tant que l’appareil domestique est en ligne. La page proxys pour antidetect montre comment régler les profils.
Pour tout ce qui lit des pages publiques, la rotation convient mieux et coûte moins par requête.
Un fichier de liste renouvelé toutes les 10 minutes
Certains outils ne lisent les proxys que depuis un fichier. Gardez ce fichier frais avec un petit script qui télécharge la liste toutes les 10 minutes. Chaque script ci-dessous écrit d’abord dans un fichier temporaire et ne remplace le fichier principal qu’après un téléchargement complet : votre logiciel ne lit donc jamais une liste à moitié écrite ou vide. Mettez le lien de liste de l’espace client à la place de YOUR_LIST_LINK.
Linux : un script shell et cron
Enregistrez le script sous /opt/proxies/update-proxies.sh, rendez-le exécutable avec chmod +x /opt/proxies/update-proxies.sh et lancez-le une fois à la main. Il affiche le nombre de proxys enregistrés, ou une erreur si le lien ne répond pas.
#!/bin/sh
LIST_URL="YOUR_LIST_LINK"
DEST="/opt/proxies/proxies.txt"
TMP="$DEST.tmp"
mkdir -p "$(dirname "$DEST")"
if curl -fsS --max-time 60 -o "$TMP" "$LIST_URL" && [ -s "$TMP" ]; then
mv "$TMP" "$DEST"
echo "$(date '+%F %T') saved $(wc -l < "$DEST") proxies"
else
rm -f "$TMP"
echo "$(date '+%F %T') download failed, kept the old list" >&2
exit 1
fiOuvrez la planification avec crontab -e et ajoutez la ligne ci-dessous. Cron lance le script toutes les 10 minutes et ajoute ses messages à un journal. Exécutez-le en root, ou changez les deux chemins pour un dossier de votre répertoire personnel.
*/10 * * * * /opt/proxies/update-proxies.sh >> /var/log/update-proxies.log 2>&1Windows : PowerShell et le Planificateur de tâches
Enregistrez le script sous C:\proxies\update-proxies.ps1 et lancez-le une fois dans PowerShell pour vérifier le lien.
$ListUrl = "YOUR_LIST_LINK"
$Dest = "C:\proxies\proxies.txt"
$Tmp = "$Dest.tmp"
New-Item -ItemType Directory -Force -Path (Split-Path $Dest) | Out-Null
try {
Invoke-WebRequest -Uri $ListUrl -OutFile $Tmp -UseBasicParsing -TimeoutSec 60
if ((Get-Item $Tmp).Length -eq 0) { throw "empty list" }
Move-Item -Force $Tmp $Dest
$count = (Get-Content $Dest | Measure-Object -Line).Lines
Write-Output "$(Get-Date -Format s) saved $count proxies"
} catch {
Remove-Item $Tmp -ErrorAction SilentlyContinue
Write-Output "$(Get-Date -Format s) download failed, kept the old list: $($_.Exception.Message)"
exit 1
}Enregistrez une tâche qui lance le script toutes les 10 minutes : collez la commande dans l’invite de commandes ou dans PowerShell. La tâche survit aux redémarrages et apparaît dans le Planificateur de tâches sous le nom UpdateProxies. Elle tourne tant que vous êtes connecté ; pour qu’elle tourne sans session, ouvrez l’invite en administrateur et ajoutez /RU SYSTEM à la commande.
schtasks /Create /TN "UpdateProxies" /SC MINUTE /MO 10 /F /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1"Vous préférez la souris ? Ouvrez le Planificateur de tâches, choisissez Créer une tâche de base, prenez un déclencheur quotidien, puis ouvrez les propriétés de la tâche et réglez Répéter la tâche toutes les 10 minutes pendant une durée Indéfiniment. L’action lance powershell.exe avec les arguments -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1.
Tout système : Python
La version Python tourne en boucle et n’a pas besoin de planificateur. Lancez-la dans un terminal, dans screen ou tmux, ou comme service. Elle demande Python 3 et aucun paquet supplémentaire.
import time
import urllib.request
from pathlib import Path
LIST_URL = "YOUR_LIST_LINK"
DEST = Path("proxies.txt")
EVERY = 600
while True:
try:
data = urllib.request.urlopen(LIST_URL, timeout=60).read()
if not data.strip():
raise ValueError("empty list")
tmp = DEST.with_name(DEST.name + ".tmp")
tmp.write_bytes(data)
tmp.replace(DEST)
print(time.strftime("%Y-%m-%dT%H:%M:%S"), "saved", len(data.split()), "proxies", flush=True)
except Exception as error:
print(time.strftime("%Y-%m-%dT%H:%M:%S"), "download failed, kept the old list:", error, flush=True)
time.sleep(EVERY)Pointez votre logiciel vers le fichier enregistré : il lira toujours une liste de moins de 10 minutes. Gardez l’intervalle de 10 minutes : nous limitons les requêtes plus fréquentes.
Protocoles, prix et test
Chaque ligne rotative de forfait fonctionne en SOCKS5, SOCKS4, HTTP et HTTPS sur un port, voir proxys SOCKS5 et proxys HTTP. Tailles et durées sont dans la grille tarifaire, et le support accorde une heure offerte sur le forfait de votre choix sur la page contact.
