Zum Inhalt

Der vollständige Leitfaden zum Scrapen von Daten aus mobilen App-APIs

In unserer modernen Mobile-First-Welt erfreuen sich mobile Apps immer größerer Beliebtheit und ersetzen herkömmliche Websites für viele Dienste. Mittlerweile sind in den großen App Stores über 5 Millionen Apps verfügbar. Der durchschnittliche Smartphone-Nutzer hat über 80 Apps installiert. Und mobile Apps machen 90 % der Zeit aus, die man online in Apps verbringt, im Vergleich zum mobilen Web.

Was bedeutet das? Mobile Apps werden zu einer der wertvollsten und reichlichsten Datenquellen in unserer zunehmend digitalen Welt. Standortdaten, Nutzungsstatistiken, Profile, Transaktionen und mehr können aus dem mobilen App-Verkehr extrahiert werden.

Dies stellt eine große Chance für Unternehmen, Forscher und Entwickler dar. Um diese Daten zu sammeln, muss jedoch die Kommunikation zwischen Apps und ihren Backend-APIs abgefangen werden. Das liegt daran, dass mobile Apps verschlüsselte HTTPS-Verbindungen verwenden, um Daten sicher zu übertragen.

Durch einfaches Ausspionieren des Netzwerkverkehrs wird der Inhalt nicht preisgegeben. Sie benötigen eine Möglichkeit, den Datenverkehr zu entschlüsseln.

Geben Sie Man-in-the-Middle-Proxyserver (MITM) ein.

In diesem umfassenden Leitfaden mit 4,000 Wörtern erfahren Sie:

  • Was genau ist ein MITM-Proxy und wie funktioniert er?
  • Schritt-für-Schritt-Anleitung zum Einrichten Ihres eigenen MITM-Proxys für die Analyse des mobilen App-Verkehrs
  • So verwenden Sie den Proxy, um eine mobile App-API zu beobachten und zurückzuentwickeln
  • Tools und Techniken zum Extrahieren wertvoller Daten aus APIs mobiler Apps
  • Best Practices des MITM-Proxys für eine verantwortungsvolle Datenerfassung

Wenn Sie praktische Erfahrungen beim Extrahieren von Daten aus Apps wie Tinder, Airbnb, Yelp und anderen sammeln möchten, sind Sie hier genau richtig. Lass uns anfangen!

Was ist ein Man-in-the-Middle (MITM)-Proxy?

Um zu verstehen, wie MITM-Proxys das Scrapen von Daten mobiler Apps ermöglichen, müssen Sie zunächst verstehen, was die HTTPS-Verschlüsselung bewirkt.

HTTPS verwendet SSL/TLS-Zertifikate, um die Kommunikation zwischen einem Client (z. B. einer mobilen App) und einem Server (z. B. API-Backend) zu verschlüsseln. Dadurch wird verhindert, dass jemand, der das Netzwerk ausspioniert, den Datenverkehr einsehen oder manipulieren kann.

Aber was wäre, wenn Sie diesen Datenverkehr abfangen könnten, indem Sie sich in der Mitte positionieren – zwischen dem Client und dem Zielserver?

Genau das macht ein MITM-Proxy. Der Proxy fungiert als Vermittler, über den der gesamte Datenverkehr läuft:

Client <—-> MITM-Proxy <—-> Zielserver

Der Proxy stellt separate SSL-Verbindungen mit dem Client und dem Server her, um deren Datenverkehr zu entschlüsseln. Anschließend kann es die Klartextanfragen prüfen, analysieren und sogar modifizieren, bevor es sie erneut verschlüsselt und weitersendet.

Durch die Installation des Stammzertifikats des Proxys als vertrauenswürdige Autorität kann dieser effektiv die Identität einer beliebigen Domäne annehmen. Dies ermöglicht ein nahtloses Abfangen, ohne dass Browser-Sicherheitswarnungen ausgelöst werden.

Zu den beliebten MITM-Proxys gehören:

ProxyPlattformNotizen
MitmproxyMac, Windows, LinuxLeistungsstarkes konsolenbasiertes Tool
Karl ProxyMac, Windows, LinuxGUI, Unterstützung der Gerätekonfiguration
FiedlerWindowsKann Datenverkehr von Windows-Apps debuggen

In dieser Anleitung demonstrieren wir die Verwendung Mitmproxy da es kostenlos, Open Source und schnell einzurichten ist.

Sehen wir uns nun an, wie Sie ein mobiles Gerät so konfigurieren, dass es seinen Datenverkehr über Ihren MITM-Proxy weiterleitet.

Schritt 1: Installieren Sie mitmproxy auf Ihrem Computer

Der erste Schritt besteht darin, den Mitmproxy-Proxyserver auf Ihrem Desktop- oder Laptop-Computer zu installieren und zu starten. Es fängt Anfragen von Geräten ab, die für die Weiterleitung konfiguriert sind.

Auf macOS installieren

Wenn Sie einen Mac verwenden, ist die Installation von mitmproxy am einfachsten über Homebrew:

$ brew install mitmproxy

Unter Linux installieren

Verwenden Sie unter Linux den Paketmanager Ihrer Distribution, z. B.:

$ sudo apt install mitmproxy # Debian/Ubuntu
$ sudo dnf install mitmproxy # Fedora

Unter Windows installieren

Windows-Benutzer können die offizielle Binärversion von herunterladen mitmproxy.org. Stellen Sie sicher, dass Sie die neueste mitmproxy-Version auswählen, nicht das Dienstprogramm mitmdump.

Starten Sie den Proxy

Starten Sie nach der Installation mitmproxy auf dem Standardport 8080:

$ mitmproxy

Die abgefangenen Anfragen sollten in der Mitmproxy-Konsole angezeigt werden:

Mitmproxy-Konsole

Lassen Sie dies im Hintergrund laufen, während Sie Ihr Mobilgerät für die Verwendung des Proxys konfigurieren.

Schritt 2: Konfigurieren Sie das Mobilgerät für die Weiterleitung über mitmproxy

Jetzt müssen wir das mobile Gerät so konfigurieren, dass es seinen Datenverkehr zum Abfangen über den Mitmproxy-Proxy leitet.

Hier sind die Schritte für gängige mobile Betriebssysteme:

Auf iPhone/iOS

  1. Verbinden Sie Ihr iPhone mit demselben Wi-Fi-Netzwerk wie Ihr Computer, auf dem mitmproxy ausgeführt wird.

  2. Gehen Sie zu Einstellungen > WLAN und wählen Sie Ihr aktuelles Netzwerk aus.

  3. Scrolle nach unten und tippe auf Proxy konfigurieren.

  4. Auswählen Manuell So legen Sie Ihre eigenen Proxy-Details fest:

    • Server: Die IP-Adresse Ihres Computers im Netzwerk (z. B. 192.168.1.10)

    • Hafen: 8080

Dadurch wird der gesamte Geräteverkehr über Ihren Computer und Mitmproxy geleitet!

Auf Android

  1. Verbinden Sie Ihr Android-Gerät mit demselben WLAN-Netzwerk wie der Proxy.

  2. Gehen Sie zu Einstellungen > WLAN > Erweiterte Optionen > Proxy und wählen Sie Manuell.

  3. Geben Sie die IP-Adresse Ihres Computers in das Feld „Hostname“ und 8080 als Port ein.

  4. Tippen Sie auf Speichern, um die Proxy-Konfiguration zu übernehmen.

Auf Windows Phone

  1. Wischen Sie auf dem Startbildschirm nach links zur App-Liste und tippen Sie auf Einstellungen .

  2. Zylinderkopfschrauben W-Lan und drücken Sie lange auf Ihr verbundenes Netzwerk. Wählen Bearbeiten.

  3. Zylinderkopfschrauben Zusatzoptionen anzeigen dann Proxy festlegen zum Handbuch.

  4. Geben Sie die IP-Adresse Ihres Computers und 8080 als Port ein.

  5. Zylinderkopfschrauben Speichern um eine Verbindung über den Proxy herzustellen.

Und das ist es! Ihr Mobilgerät sollte nun den gesamten Datenverkehr zum Abfangen über Mitmproxy weiterleiten.

Schritt 3: Installieren Sie das Mitmproxy-Zertifikat auf dem Mobilgerät

An diesem Punkt sehen Sie in der Mitmproxy-Konsole den Datenverkehr von Ihrem Mobilgerät. Allerdings verwenden die meisten Apps HTTPS, sodass Sie den Inhalt nicht sehen können.

Um den HTTPS-Verkehr zu entschlüsseln, müssen Sie das Mitmproxy-Zertifikat als vertrauenswürdige Stammzertifizierungsstelle auf Ihrem Mobilgerät installieren.

Mitmproxy bietet eine praktische Website unter http://mitm.it Dadurch wird das Zertifikat für Ihre spezifische Geräteplattform generiert.

Einfach http://mitm.it Klicken Sie im Browser Ihres Mobilgeräts auf den Link für Ihr Betriebssystem:

mitm.it-Website

Anschließend installieren Sie das heruntergeladene Zertifikat auf Ihrem Gerät:

Auf iOS

  1. Gehen Sie zu Einstellungen > Allgemein > Info > Zertifikatvertrauenseinstellungen

  2. Aktivieren Sie die Mitmproxy Bescheinigung

Auf Android

  1. Speichern Sie die mitmproxy-ca-cert.pem Datei irgendwo im Gerätespeicher ablegen

  2. Gehen Sie zu Einstellungen > Sicherheit > Vom Speicher installieren

  3. Wähle aus mitmproxy-ca-cert.pem Datei

Auf Windows Phone

  1. Gehen Sie zu System > Verschlüsselung > Zertifikat importieren

  2. Wählen Sie das heruntergeladene aus mitmproxy-ca-cert.crt

Möglicherweise müssen Sie das Mitmproxy-Zertifikat für VPN oder Apps als vertrauenswürdig festlegen. Jetzt kann mitmproxy sogar HTTPS-verschlüsselten Datenverkehr vom Gerät abfangen.

Aktivieren Sie das Zertifikat nur, wenn Sie den Datenverkehr debuggen müssen, und deaktivieren Sie es, wenn Sie fertig sind! Geben Sie andere App-Daten nicht unnötig preis.

Okay, Zeit für den unterhaltsamen Teil ... schauen wir uns an, wie man den Datenverkehr beim Reverse Engineering und Scraping von APIs für mobile Apps beobachtet!

Schritt 4: Beobachten und Umkehren einer mobilen App-API

Öffnen Sie die mobile App, die Sie studieren möchten, auf dem Gerät, das für die Verwendung des Proxys konfiguriert ist. Ich verwende zum Beispiel die Essensliefer-App Swiggy.

In der Mitmproxy-Konsole auf Ihrem Computer sollten Anfragen angezeigt werden, die von der IP-Adresse Ihres Mobilgeräts stammen.

Filtern Sie die Ansicht nach der Domäne der API, die Sie analysieren möchten. Für Swiggy ist das so prod-api.swiggy.com:

Swiggy API-Verkehr in mitmproxy

Achten Sie bei der Interaktion mit der mobilen App auf Muster in den API-Anfragen. Sie können eine Anfrage erweitern, um alle Details anzuzeigen:

Erweiterte API-Anfrage

Das Testen verschiedener App-Flows zeigt, welche Endpunkte auf der Backend-API vorhanden sind und welche Daten sie zurückgeben. Für das Schaben interessieren wir uns BESTELLE Anfragen, die JSON-Daten zurückgeben.

Basierend auf der Beobachtung des Verkehrs von Swiggy aus können wir Folgendes sehen:

  • /restaurants/list/v5 gibt eine Liste von Restaurants für einen Standort zurück
  • /menu/v4 Ruft die Speisekarte für ein bestimmtes Restaurant ab
  • /geocode/v1 Konvertiert Adressen in Lat/Lng-Koordinaten

Und so weiter. Dadurch können wir die API-Endpunkte verstehen und abbilden.

Jetzt können wir API-Anfragen replizieren, um Daten zu extrahieren. Zum Beispiel anrufen /restaurants/list/v5 an. Nach der Installation können Sie HEIC-Dateien mit der lat und lng Parameter gibt eine JSON-Liste von Restaurants zurück:

import requests

api_url = ‘https://prod-api.swiggy.com/restaurants/list/v5‘

params = {
  ‘lat‘: 12.972442, 
  ‘lng‘: 77.580643 
}

response = requests.get(api_url, params=params)
data = response.json() 

for restaurant in data:
  print(restaurant[‘name‘], restaurant[‘area‘])

Dadurch werden Namen und Bereiche von Swiggy-Restaurants in der Nähe eines bestimmten Standorts ausgedruckt. Mit dem Proxy können wir sehen, wie die App funktioniert, und die API für das Scraping rückentwickeln.

Scraping-Strategien für mobile App-APIs

Sobald Sie den API-Verkehr einer App untersucht haben, um Endpunkte und Parameter zu verstehen, können Sie mit der programmgesteuerten Datenerfassung beginnen.

Hier einige Best Practices:

  • Verwenden Sie Proxys – Wechseln Sie verschiedene private IPs, um Blockaden durch Ratenbegrenzung zu vermeiden.

  • Eingaben randomisieren – Variieren Sie Geokoordinaten, Benutzer-IDs usw., um menschlicher zu wirken.

  • Drosselungsanfragen – Fügen Sie Verzögerungen zwischen Anfragen hinzu, um das Volumen zu begrenzen.

  • Cache-Daten – Speichern Sie Antworten, um doppelte Anfragen zu vermeiden.

  • Behandeln Sie Fehler – Wiederholen Sie fehlgeschlagene Anfragen und behandeln Sie HTTP-Fehler ordnungsgemäß.

  • Daten paginieren – Folgen Sie den Paginierungslinks in den Antworten, um alle Daten zu extrahieren.

  • Verwenden Sie bei Bedarf POST – Für einige Aktionen wie das Aufgeben einer Bestellung sind POST-Anfragen erforderlich.

  • Schnell analysieren – Extrahieren Sie nur die Daten, die Sie benötigen, anstatt alles zu analysieren.

  • Scrub-Metadaten – Entfernen Sie eindeutige IDs, Zeitstempel usw., die Datensätze identifizieren könnten.

  • Bleiben Sie am Ball – Suchen Sie nach App-Updates nach API-Änderungen.

Mit etwas Kreativität können Sie Scraper erstellen, um alle möglichen wertvollen Daten aus den APIs mobiler Apps zu extrahieren. Stellen Sie einfach sicher, dass Sie die Nutzungsbedingungen sorgfältig befolgen und verantwortungsbewusst mit Daten umgehen!

Verantwortungsvolles mobiles API-Scraping

Wie bei jeder Form von Web Scraping sind auch beim Sammeln von Daten über mobile APIs einige ethische Überlegungen zu berücksichtigen:

  • Überlasten Sie die Server nicht – Begrenzen Sie das Anfragevolumen, um die Auswirkungen zu minimieren.

  • Nutzung einschränken – Erheben Sie nur Daten, deren Notwendigkeit Sie nachweisen können.

  • Respektieren Sie die ToS – Vermeiden Sie Verstöße gegen Nutzungsbedingungen oder Geheimhaltungsvereinbarungen.

  • Daten schützen – Speichern Sie Daten sicher und minimieren Sie Aufbewahrungsfristen.

  • Daten anonymisieren – Entfernen Sie persönliche Informationen, die für Ihren Zweck nicht erforderlich sind.

  • Überprüfen Sie die Gesetze – Einige Standorte regeln die Art der Datenerfassung.

  • Verwenden Sie weise – Daten sollten einen Mehrwert bieten und nicht nur gesammelt werden, weil Sie es können.

Transparenz und Ethik sind von entscheidender Bedeutung. Mit großartigen Daten geht große Verantwortung einher!

Zusammenfassung

Ich hoffe, dieser Leitfaden hat Ihnen einen umfassenden Einblick in das Abfangen mobiler App-Daten mit Man-in-the-Middle-Proxys gegeben. Die wichtigsten Erkenntnisse:

  • Mit MITM-Proxys können Sie HTTPS-Verkehr von mobilen Apps abfangen, indem Sie das Proxy-Zertifikat installieren.

  • Mithilfe von Tools wie mitmproxy lässt sich dieser Datenverkehr leicht untersuchen, um zu verstehen, wie eine App mit API-Backends kommuniziert.

  • Das Reverse Engineering der API-Endpunkte ermöglicht die Replikation von Anfragen zum Scrapen mobiler App-Daten.

  • Proxys, Drosselung und andere Techniken können verwendet werden, um mobile App-Daten in großem Maßstab effizient zu sammeln.

  • Stellen Sie sicher, dass Sie mobile APIs auf ethische und rechtliche Weise durchsuchen.

Mobile Anwendungen bieten eine Fülle von Daten, die nur darauf warten, genutzt zu werden. Nachdem Sie nun wissen, wie Sie MITM-Proxys für den Zugriff verwenden, sind die Möglichkeiten endlos!

Von welchen coolen Apps werden Sie anfangen, Daten zu extrahieren? Lassen Sie mich wissen, wenn Sie weitere Fragen zum mobilen Proxy-Scraping haben!

Mitreden

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *