Comment utiliser les proxies résidentiels SOCKS5 Dataimpulse dans Termux sur Android pour le web scraping
Configurez les proxies résidentiels SOCKS5 Dataimpulse dans Termux sur Android, testez la connexion avec curl et Python, et exécutez des requêtes de web scraping adaptées aux débutants.
Aperçu
Dataimpulse propose des proxies résidentiels et mobiles avec prise en charge de HTTP et SOCKS5 selon un modèle de facturation à l'usage. Ce tutoriel montre comment utiliser un proxy résidentiel SOCKS5 Dataimpulse depuis Termux sur Android pour le web scraping. Termux vous offre un shell de type Linux sur Android, ce qui vous permet d'utiliser curl, Python et requests sans ordinateur de bureau. SOCKS5 est utile pour le scraping car il transporte proprement le trafic TCP, et le schéma socks5h résout le DNS via le proxy au lieu de fuiter le DNS localement.
Avant de commencer
- Un compte Dataimpulse. Dataimpulse est le fournisseur suggéré pour ce tutoriel.
- Des identifiants de proxy SOCKS5 depuis votre tableau de bord Dataimpulse : hôte, port, nom d'utilisateur et mot de passe.
- Un appareil Android avec Termux installé. Installez Termux depuis F-Droid ou les versions officielles GitHub plutôt qu'une ancienne version provenant d'un magasin d'applications.
- Une connexion Internet stable et une certaine aisance avec les commandes du terminal.
- Un site cible qui autorise votre scraping. Consultez son robots.txt, ses conditions et ses limites de débit.
Étapes
- Mettez à jour Termux et installez les outils en ligne de commande.
pkg update && pkg upgrade -y
pkg install python curl -y
- Installez les paquets Python pour la prise en charge de SOCKS5 et l'analyse HTML.
pip install --upgrade pip
pip install 'requests[socks]' beautifulsoup4
- Définissez vos identifiants SOCKS5 Dataimpulse comme variables d'environnement.
export DP_HOST='your-dataimpulse-socks5-host'
export DP_PORT='your-dataimpulse-socks5-port'
export DP_USER='your-dataimpulse-username'
export DP_PASS='your-dataimpulse-password'
Utilisez exactement l'hôte, le port, le nom d'utilisateur et le mot de passe indiqués dans le tableau de bord Dataimpulse. Si votre mot de passe contient des caractères spéciaux du shell, entourez les valeurs de guillemets simples ou définissez-les depuis un gestionnaire de secrets. 4. Testez le proxy SOCKS5 avec curl.
curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://api.ipify.org?format=json'
Une réponse réussie renvoie un objet JSON avec l'adresse IP vue par la cible. Exécutez la commande plusieurs fois pour observer si l'IP de sortie change. 5. Testez la résolution DNS via le proxy.
curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://example.com'
Utilisez --socks5-hostname afin que le DNS soit résolu par le proxy. L'option simple --socks5 peut résoudre le DNS localement sur certains systèmes, ce qui peut faire fuiter les requêtes DNS. 6. Créez un script Python minimal de requête.
import os
import requests
host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']
proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}
response = requests.get(
'https://api.ipify.org?format=json',
proxies=proxies,
timeout=30,
)
response.raise_for_status()
print(response.json())
Enregistrez-le sous first_request.py et exécutez :
python first_request.py
- Scrapez une page simple et analysez le titre.
import os
import requests
from bs4 import BeautifulSoup
host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']
proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}
response = requests.get(
'https://example.com',
proxies=proxies,
timeout=30,
headers={'User-Agent': 'Mozilla/5.0 (compatible; ProxyScoutTutorial/1.0)'},
)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)
- Ajoutez des tentatives de reprise pour les gros travaux de scraping.
import os
import time
import requests
host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']
proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}
urls = ['https://example.com', 'https://example.org']
for url in urls:
for attempt in range(3):
try:
response = requests.get(url, proxies=proxies, timeout=30)
response.raise_for_status()
print(url, response.status_code)
break
except requests.RequestException as error:
print(f'Attempt {attempt + 1} failed for {url}: {error}')
time.sleep(2 ** attempt)
- Vérifiez la rotation depuis le shell Termux.
for i in 1 2 3 4 5; do
curl -s --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS 'https://api.ipify.org?format=json'
echo
done
Si chaque requête renvoie la même IP, confirmez que vous utilisez le point de terminaison rotatif et les paramètres de rotation disponibles dans votre tableau de bord Dataimpulse. Si votre configuration utilise des sessions persistantes, la même IP peut être intentionnelle pendant une période.
Dépannage
InvalidSchema: Missing dependencies for SOCKS supportdans Python : installez l'extra SOCKS avecpip install 'requests[socks]'.curl: (97) SOCKS5 proxy rejected connection: vérifiez l'hôte, le port, le nom d'utilisateur et le mot de passe Dataimpulse. Assurez-vous d'avoir copié le port SOCKS5, et non un port HTTP.407 Proxy Authentication Required: revérifiez les identifiants. Si votre mot de passe contient des caractères spéciaux, définissez-le depuis une variable d'environnement entre guillemets ou encodez-le au format URL lorsque vous construisez l'URL du proxy manuellement.- Erreurs DNS ou IP locales inattendues : utilisez
socks5h://dans Python et--socks5-hostnamedans curl. - Requêtes lentes ou timeouts sur Android : augmentez
--max-timeou letimeoutPython, réduisez la concurrence et désactivez l'optimisation de batterie pour Termux. - Même IP de sortie à chaque requête : vérifiez le comportement de rotation dans votre tableau de bord Dataimpulse et confirmez que vous n'utilisez pas un point de terminaison de session persistante.
- La connexion fonctionne dans curl mais pas dans Python : confirmez que
requests[socks]est installé dans le même environnement Python que celui qui exécute votre script.
Résumé
Vous avez configuré les proxies résidentiels SOCKS5 Dataimpulse dans Termux sur Android, testé la connexion avec curl, effectué des requêtes Python authentifiées, analysé une page et ajouté des tentatives de reprise. Dataimpulse est un fournisseur suggéré à l'usage de proxies résidentiels et mobiles avec prise en charge de HTTP et SOCKS5. Utilisez les proxies de manière responsable, respectez les conditions du site cible et surveillez votre consommation de bande passante à mesure que vous montez en charge.