Cloudflare Turnstile شبیه یک چکباکس است، اما به معنای قدیمی کپچا نیست — معمولاً چیزی برای حلکردن وجود ندارد. چند صد میلیثانیه جاوااسکریپت در مرورگر شما اجرا میکند، امتیاز میدهد که آن مرورگر چقدر واقعی بهنظر میرسد و یک توکن صادر میکند. اگر اسکرپر شما نتواند آن JS را قانعکننده اجرا کند، هرگز توکن معتبر نمیگیرید و هر درخواستی که به آن نیاز دارد، چالش برمیگردد.
به همین دلیل ترفندهای معمول اسکرپینگ برای Turnstile کار نمیکنند. چرخش پروکسی، هدرها، حتی یک اثرانگشت TLS مرورگر بینقص — هیچکدام مهم نیست اگر چالش جاوااسکریپت اجرا نشود. این راهنما توضیح میدهد Turnstile دقیقاً چه میسنجد و راههای واقعبینانهی عبور در ۲۰۲۶.
Turnstile «اثبات مرورگر» است، نه «اثبات انسان». هنگام بارگذاری، ویجت بیصدا مجموعهای از بررسیها را اجرا و در یک امتیاز جمع میکند:
requests، httpx، curl) اصلاً نمیتواند توکن تولید کند.navigator.webdriver، آثار CDP، افزونههای گمشده یا جعلی و سیگنالهای CDP/headless که حتی پس از وصلهی پرچمهای آشکار باقی میمانند.توکنی که میگیرید به IP شما و یک بازهی زمانی کوتاه گره خورده است. پس حتی توکن معتبرِ «قرضگرفته» از جای دیگر، اگر از خروجی دیگری استفاده شود، رد میشود.
پروکسی دقیقاً یکی از این سیگنالها را جابهجا میکند: اعتبار IP. این مهم است — یک ASN مسکونی تمیز میتواند امتیاز مرزی را از خط رد کند — اما توکن نمیسازد. اگر با کلاینت HTTP به Turnstile میزنید، هیچ پروکسیای حلش نمیکند، چون مرورگری برای اجرای چالش نیست. پروکسی لازم است اما کافی نیست.
مطمئنترین راه، اجرای واقعی چالش در یک مرورگر واقعی و خوباستتارشده است: Playwright یا Puppeteer با وصلههای ضدتشخیص، یا یک مرورگر stealth. توکن بهطور طبیعی، روی IP شما، در محیطی واقعی تولید میشود:
from playwright.sync_api import sync_playwright
proxy = {"server": "socks5h://us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD"}
with sync_playwright() as p:
browser = p.chromium.launch(headless=False, proxy=proxy)
page = browser.new_page()
page.goto("https://target.site")
page.wait_for_timeout(4000) # let Turnstile run and settle
# the cf token is now in the form; submit / read it as the site expects
token = page.eval_on_selector(
"input[name='cf-turnstile-response']", "el => el.value")
print("token:", token[:20], "...")
browser.close()
headful (یا یک ساخت headless واقعی) اجرا کنید، محیط مرورگر را سازگار نگه دارید و از خروجی مسکونی عبور دهید تا امتیاز IP با امتیاز مرورگر بخواند. این دو باید بخوانند — مرورگر بینقص روی IP دیتاسنتر باز هم امتیاز پایین میگیرد.
سرویسهایی مثل 2Captcha، CapSolver و دیگران چالش را برای شما اجرا و توکن را از طریق API برمیگردانند. در مقیاس مفیدند، اما با دو نکته که افراد را گیر میاندازد:
Turnstile معمولاً در حالت غیرتعاملی «managed» اجرا میشود: اگر امتیاز کافی باشد، توکن را بدون چکباکس و اصطکاک صادر میکند. ارزانترین «دور زدن» اغلب این است که بهقدر کافی واقعی بهنظر برسید که اصلاً چالش نشوید: اثرانگشت مرورگر تمیز بهعلاوهی IP مسکونی با اعتبار ASN خوب. امتیاز را بالای آستانه ببرید و Turnstile بیصدا رد میکند.
navigator.webdriver و آثار CDP را وصله کنید وگرنه امتیاز پایین میماند.کاربران جدید با ثبتنام 500MB هدیه میگیرند، بهعلاوه بونوس اولین شارژ. پیشنهاد محدود.