Dating app scraper - Tindr
Title: Scraping Tinder User Data Using Wireshark and Emulator Techniques
Scraping Tinder is non-trivial due to strong client-side protection, use of certificate pinning, encrypted APIs, and dynamic token-based authentication. However, with a rooted Android emulator, network proxying, and some reverse engineering of the app’s traffic, it’s possible to capture API calls and extract structured user data.
Step 1: Setup Environment for Traffic Interception
-
Emulator: Use rooted Android emulator (e.g., Genymotion rooted image or AVD with Magisk).
-
Proxy tool: Set up Wireshark and mitmproxy on your host machine. Configure emulator Wi-Fi settings to route through proxy.
-
SSL Bypass:
-
Install mitmproxy's SSL certificate in the emulator (via
/system/etc/security/cacerts/
). -
Use tools like Frida or Xposed + JustTrustMe to disable certificate pinning in the Tinder app.
-
-
App Source: Use
jadx
to decompile the Tinder APK and locate auth token code paths (e.g.,X-Auth-Token
, device UUID, Facebook/Google Auth flows).
Step 2: Identify Key Tinder API Calls
Tinder’s APIs are mostly RESTful and JSON-based. With Wireshark or mitmproxy sniffing in place, monitor requests to endpoints like:
https://api.gotinder.com/v2/matches
https://api.gotinder.com/user/recs
https://api.gotinder.com/v2/fast-match/teasers
Inspect headers like X-Auth-Token
, User-Agent
, and platform
. Most JSON responses include:
-
name
-
birth_date
-
gender
-
schools
,jobs
,photos
-
user_id
-
distance_mi
,ping_time
Step 3: Automate the Scraping via Authenticated Requests
After extracting a valid token and device headers, use Python to send requests and parse the output.
import requests
import csv
headers = {
"X-Auth-Token": "YOUR_AUTH_TOKEN",
"User-Agent": "Tinder Android Version 13.8.0",
}
url = "https://api.gotinder.com/user/recs"
resp = requests.get(url, headers=headers)
users = resp.json().get("results", [])
with open("tinder_data.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["a_btw", "src_dom", "fn", "g", "d", "origin", "dor", "id", "m_sent", "m_recvd"])
for u in users:
writer.writerow([
"Feb-24", "tinder+misc",
u.get("name", ""),
"f" if u.get("gender") == 1 else "m",
"", "indian",
u.get("ping_time", "")[:10],
u.get("_id", ""),
u.get("messages_sent", 0), # hypothetical field
u.get("messages_received", 0)
])
Note: messages_sent
and messages_received
are inferred; actual Tinder APIs may not expose them directly—may require match detail scraping.
Step 4: Handling Pagination and Rate Limiting
Tinder enforces rate limits (e.g., 100 swipes/day for free accounts). Scraping too aggressively will result in HTTP 429s or bans. Use time.sleep()
delays and rotate accounts/devices/tokens.
import time
def safe_get_recs():
for _ in range(10):
res = requests.get(url, headers=headers)
if res.status_code == 429:
print("Rate limited. Sleeping 60s.")
time.sleep(60)
continue
process(res.json())
time.sleep(3)
Consider replaying captured requests using curl with cookies set manually from mitmproxy logs to validate behavior before automation.
Step 5: Output Example
Here’s the desired CSV format, generated from extracted data:
a_btw,src_dom,fn,g,dor,origin,dor,id,m_sent,m_recvd
Feb-24,tinder+misc,aakanksha,f,,indian,4/7/2020,93445,21,12
Feb-24,tinder+misc,aarti devi,f,,indian,7/9/2018,45238,12,32
Feb-24,tinder+misc,charu,f,,indian,10/28/2018,84501,25,2
Feb-24,tinder+misc,kranti sharma,f,,indian,4/19/2020,24658,19,34
Feb-24,tinder+misc,neha,f,,indian,9/1/2020,68074,17,10
Feb-24,tinder+misc,nilam devi,f,,indian,3/2/2018,94001,5,28
Feb-24,tinder+misc,pooja jayshwal,f,,indian,7/31/2020,17216,17,28
Feb-24,tinder+misc,preeti gupta,f,,indian,4/24/2018,46411,6,26
Feb-24,tinder+misc,preeti sinha,f,,indian,6/22/2021,10451,9,23
Feb-24,tinder+misc,priya sexena,f,,indian,5/12/2021,58238,8,19
Feb-24,tinder+misc,priyanga ananthasekaran,f,,indian,7/13/2022,38039,3,2
Feb-24,tinder+misc,sashi mittal,f,,indian,8/30/2019,31986,3,27
Feb-24,tinder+misc,seema,f,,indian,12/7/2020,46781,16,25
Feb-24,tinder+misc,shajiya,f,,indian,6/18/2018,77648,11,24
Feb-24,tinder+misc,shanthi devi,f,,indian,5/17/2021,78461,9,14
Comments
Post a Comment