Wie man Dataimpulse SOCKS5 Residential-Proxies in Termux auf Android für Web Scraping verwendet
Richten Sie Dataimpulse SOCKS5 Residential-Proxies in Termux auf Android ein, testen Sie die Verbindung mit curl und Python und führen Sie anfängerfreundliche Web-Scraping-Anfragen aus.
Überblick
Dataimpulse bietet Residential- und Mobile-Proxies mit HTTP- und SOCKS5-Unterstützung auf einem Pay-as-you-go-Abrechnungsmodell. Dieses Tutorial zeigt, wie man einen Dataimpulse SOCKS5 Residential-Proxy von Termux auf Android für Web Scraping verwendet. Termux bietet eine Linux-ähnliche Shell auf Android, sodass Sie curl, Python und requests ohne Desktop verwenden können. SOCKS5 ist nützlich für das Scraping, da es TCP-Verkehr sauber überträgt und das socks5h-Schema DNS über den Proxy auflöst, anstatt DNS lokal zu leaken.
Bevor Sie beginnen
- Ein Dataimpulse-Konto. Dataimpulse ist der empfohlene Anbieter für dieses Tutorial.
- SOCKS5-Proxy-Anmeldeinformationen aus Ihrem Dataimpulse-Dashboard: Host, Port, Benutzername und Passwort.
- Ein Android-Gerät mit installiertem Termux. Installieren Sie Termux von F-Droid oder den offiziellen GitHub-Releases anstatt einer veralteten App-Store-Version.
- Eine stabile Internetverbindung und grundlegende Vertrautheit mit Terminal-Befehlen.
- Eine Zielseite, die Ihr Scraping erlaubt. Überprüfen Sie deren robots.txt, Nutzungsbedingungen und Ratenbegrenzungen.
Schritte
- Aktualisieren Sie Termux und installieren Sie die Kommandozeilen-Tools.
pkg update && pkg upgrade -y
pkg install python curl -y
- Installieren Sie Python-Pakete für SOCKS5-Unterstützung und HTML-Parsing.
pip install --upgrade pip
pip install 'requests[socks]' beautifulsoup4
- Legen Sie Ihre Dataimpulse SOCKS5-Anmeldeinformationen als Umgebungsvariablen fest.
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'
Verwenden Sie den genauen Host, Port, Benutzernamen und das Passwort, die im Dataimpulse-Dashboard angezeigt werden. Wenn Ihr Passwort Shell-Sonderzeichen enthält, schließen Sie die Werte in einfache Anführungszeichen ein oder setzen Sie sie über einen Secrets Manager. 4. Testen Sie den SOCKS5-Proxy mit curl.
curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://api.ipify.org?format=json'
Eine erfolgreiche Antwort gibt ein JSON-Objekt mit der IP-Adresse zurück, die vom Ziel gesehen wird. Führen Sie den Befehl einige Male aus, um zu beobachten, ob sich die Exit-IP ändert. 5. Testen Sie die DNS-Auflösung über den Proxy.
curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://example.com'
Verwenden Sie --socks5-hostname, damit DNS vom Proxy aufgelöst wird. Ein einfaches --socks5 kann auf einigen Systemen DNS lokal auflösen, was DNS-Anfragen leaken kann. 6. Erstellen Sie ein minimales Python-Request-Skript.
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())
Speichern Sie es als first_request.py und führen Sie aus:
python first_request.py
- Scrapen Sie eine einfache Seite und parsen Sie den Titel.
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)
- Fügen Sie Wiederholungsversuche für große Scraping-Jobs hinzu.
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)
- Überprüfen Sie die Rotation von der Termux-Shell aus.
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
Wenn jede Anfrage dieselbe IP zurückgibt, bestätigen Sie, dass Sie den rotierenden Endpunkt und die Rotationseinstellungen verwenden, die in Ihrem Dataimpulse-Dashboard verfügbar sind. Wenn Ihr Setup sticky Sessions verwendet, kann dieselbe IP für einen Zeitraum beabsichtigt sein.
Fehlerbehebung
InvalidSchema: Missing dependencies for SOCKS supportin Python: Installieren Sie das SOCKS-Extra mitpip install 'requests[socks]'.curl: (97) SOCKS5 proxy rejected connection: Überprüfen Sie den Dataimpulse-Host, -Port, -Benutzernamen und das -Passwort. Stellen Sie sicher, dass Sie den SOCKS5-Port kopiert haben, nicht einen HTTP-Port.407 Proxy Authentication Required: Überprüfen Sie die Anmeldeinformationen erneut. Wenn Ihr Passwort Sonderzeichen enthält, setzen Sie es aus einer in Anführungszeichen gesetzten Umgebungsvariable oder URL-kodieren Sie es, wenn Sie die Proxy-URL manuell erstellen.- DNS-Fehler oder unerwartete lokale IPs: Verwenden Sie
socks5h://in Python und--socks5-hostnamein curl. - Langsame Anfragen oder Timeouts unter Android: Erhöhen Sie
--max-timeoder Pythontimeout, reduzieren Sie die Parallelität und deaktivieren Sie die Batterieoptimierung für Termux. - Gleiche Exit-IP bei jeder Anfrage: Überprüfen Sie das Rotationsverhalten in Ihrem Dataimpulse-Dashboard und bestätigen Sie, dass Sie keinen Sticky-Session-Endpunkt verwenden.
- Verbindung funktioniert in curl, aber nicht in Python: Bestätigen Sie, dass
requests[socks]in derselben Python-Umgebung installiert ist, die Ihr Skript ausführt.
Zusammenfassung
Sie haben Dataimpulse SOCKS5 Residential-Proxies in Termux auf Android eingerichtet, die Verbindung mit curl getestet, authentifizierte Python-Anfragen gestellt, eine Seite geparst und Wiederholungsversuche hinzugefügt. Dataimpulse ist ein empfohlener Pay-as-you-go-Anbieter für Residential- und Mobile-Proxies mit HTTP- und SOCKS5-Unterstützung. Verwenden Sie Proxies verantwortungsvoll, respektieren Sie die Nutzungsbedingungen der Zielseiten und überwachen Sie Ihre Bandbreitennutzung, wenn Sie skalieren.