Skip to content
Beginner / 5 min read

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.

Linux Android SOCKS5 Web Scraping

Ü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

  1. Aktualisieren Sie Termux und installieren Sie die Kommandozeilen-Tools.
pkg update && pkg upgrade -y
pkg install python curl -y
  1. Installieren Sie Python-Pakete für SOCKS5-Unterstützung und HTML-Parsing.
pip install --upgrade pip
pip install 'requests[socks]' beautifulsoup4
  1. 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
  1. 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)
  1. 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)
  1. Ü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 support in Python: Installieren Sie das SOCKS-Extra mit pip 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-hostname in curl.
  • Langsame Anfragen oder Timeouts unter Android: Erhöhen Sie --max-time oder Python timeout, 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.