Instagram और TikTok scraping में दो सबसे कठिन मुख्यधारा टारगेट हैं — Google से कठिन, Amazon से कठिन। दोनों आक्रामक IP scoring चलाते हैं, दोनों कई परतों पर आपके client का fingerprint लेते हैं, और दोनों soft block के लिए मशहूर हैं: एक साफ़ 403 के बजाय, आपको login walls, ख़ाली JSON, "challenge_required", या खामोशी से कटे-फटे परिणाम मिलते हैं। आपका scraper "काम करता है" और आपका डेटा कूड़ा होता है।
यह गाइड बताती है कि 2026 में हर प्लेटफ़ॉर्म असल में आपको कैसे ब्लॉक करता है, वह proxy setup जो टिक पाता है, और वे request patterns जो accounts और sessions को ज़िंदा रखते हैं। (scraping के बजाय multi-account प्रबंधन के लिए, देखें हमारी AdsPower/Multilogin और GoLogin/Dolphin Anty गाइड्स।)
challenge_required लौटाता है। साझा/दुरुपयोग की गई residential IPs के लिए Instagram की सहनशीलता भी कम है — pool की गुणवत्ता यहाँ लगभग किसी भी जगह से ज़्यादा मायने रखती है।X-Bogus/signature parameters चाहिए। शुद्ध-HTTP scraping का मतलब है ऐसे signatures को reverse-engineer करना जो हर कुछ हफ़्तों में rotate होते हैं — ज़्यादातर टीमें इसके बजाय एक असली browser (Playwright) चलाती हैं और JSON responses को intercept करती हैं।itemList responses जो "और कोई content नहीं" जैसे दिखते हैं)।# One identity = one sticky session, country-pinned
socks5h://USERNAME:[email protected]:913
कम मात्रा में anonymous public पेजों के लिए प्रति-request rotate करना ठीक है। जिस पल एक session cookie या login शामिल होता है, sticky पर स्विच करें — cookie और IP एक identity के रूप में चलने चाहिए (क्यों)।
from curl_cffi import requests
PROXY = {"https": "socks5h://USERNAME:[email protected]:913"}
# Public profile JSON (no login) - impersonate Chrome's TLS
r = requests.get(
"https://www.instagram.com/api/v1/users/web_profile_info/?username=nasa",
impersonate="chrome",
headers={"X-IG-App-ID": "936619743392459"},
proxies=PROXY,
)
data = r.json()["data"]["user"]
print(data["edge_followed_by"]["count"])
status code नहीं, response देखें: {"data": null} वाला 200 या /accounts/login/ पर redirect का मतलब है कि इस IP का बजट ख़र्च हो चुका है — identity rotate करें, पीछे हटें, और फिर शुरू करें।
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD",
})
page = browser.new_page()
items = []
# Let TikTok's own JS sign the requests; we just read the answers
page.on("response", lambda res:
items.extend(res.json().get("itemList", []))
if "/api/post/item_list" in res.url else None)
page.goto("https://www.tiktok.com/@nasa")
for _ in range(5):
page.mouse.wheel(0, 2500)
page.wait_for_timeout(1800) # human-ish scroll cadence
print(len(items), "videos captured")
यह signature reverse-engineering को पूरी तरह दरकिनार कर देता है: पेज ख़ुद वैध X-Bogus बनाता है, और आप JSON इकट्ठा करते हैं। proxy browser launch पर सेट होना चाहिए — auth की ख़ासियतें Playwright proxy authentication में कवर की गई हैं।
challenge_required, hasMore: true के साथ ख़ाली itemList।| TikTok | ||
|---|---|---|
| सबसे अच्छा access रास्ता | Web GraphQL/API endpoints, curl_cffi | Playwright + response interception |
| Proxy प्रकार | प्रति identity Residential sticky | Residential, बाज़ार से geo-matched |
| Datacenter IPs | Login wall / challenge | तुरंत captcha |
| Soft-block संकेत | login redirect, challenge_required, null data | ख़ाली itemList, captcha page |
| Geo संवेदनशीलता | मध्यम | उच्च — content देश के अनुसार अलग होता है |
देश-पिन किए गए, sticky sessions, साफ़ ASNs — 500MB मुफ़्त ट्रैफ़िक क्रेडिट, कार्ड की ज़रूरत नहीं।
Start Free Trialनए यूज़र्स को साइन अप पर 500MB मिलते हैं, साथ ही पहली रिचार्ज पर बोनस। सीमित समय की पेशकश।