راهاندازی پروکسی در Camoufox: اسکرپینگ Firefox ضدشناسایی با پروکسیهای خانگی (2026)
تاریخ انتشار: 16 ژوئیه 2026 · 9 دقیقه مطالعه · کد Python کاربردی در سراسر مقاله
خلاصه: Camoufox نسخهای تقویتشده از Firefox برای اسکرپینگ است — ضدشناسایی مستقیماً در سطح C++ درون مرورگر پچ شده، همراه با یک API سازگار با Playwright و اثر انگشت دستگاهی تازه در هر اجرا. این ابزار مشکل لایه مرورگر را حل میکند، نه آیپی خروجی شما را. یک پروکسی خانگی را بهصورت دیکشنری به سبک Playwright پاس بدهید، geoip=True را فعال کنید تا اثر انگشت با جغرافیای خروجی همخوانی داشته باشد، در هر اجرا یک خروجی را بچرخانید، و برای ورودها یک نشست پایدار (sticky) نگه دارید.
بیشتر ابزارهای ضدشناسایی در سال 2026 بر پایه Chromium ساخته شدهاند: nodriver، Patchright، undetected-chromedriver. Camoufox مسیر دیگری را انتخاب میکند — این یک Firefox تقویتشده و ساختهشده برای اسکرپینگ است که ضدشناسایی در سطح C++ درون مرورگر پچ شده، نه اینکه بهصورت جاوااسکریپت تزریق شود که یک آشکارساز بتواند آن را بخواند. این ابزار یک API سازگار با Playwright ارائه میدهد، در هر اجرا یک اثر انگشت دستگاه چرخشی تولید میکند و navigator، صفحهنمایش، WebGL، فونتها و موارد دیگر را از لایه بومی جعل میکند، جایی که مقادیر نمیتوانند با هم تناقض داشته باشند. چیزی که این ابزار تغییر نمیدهد، آیپی خروجی شماست. این راهنما به اتصال پروکسیهای خانگی به Camoufox میپردازد — پروکسیهای تأییدهویتدار، اثرانگشتهای هماهنگ با موقعیت جغرافیایی، چرخش، نشستهای پایدار و هماهنگی اثر انگشت با آیپی که تعیین میکند آیا واقعاً موفق میشوید یا نه.
چرا Camoufox بهجای پشته استلث Chromium؟
- ضدشناسایی در خود مرورگر جای دارد، نه در جاوااسکریپت. ابزارهایی مثل
playwright-stealthویژگیها را پس از بارگذاری صفحه پچ میکنند — آشکارسازی که آنها را دوباره بخواند میتواند پچ را تشخیص دهد. Camoufox خود Firefox را تغییر میدهد، بنابراینnavigator.webdriver، ابعاد صفحهنمایش، سازنده WebGL و فهرست فونتها پیش از اجرای هر اسکریپت صفحه از قبل درست هستند. - سطح اثر انگشتی متفاوت از بقیه. تمام اکوسیستم ضدشناسایی Chromium یک موتور و یک مجموعه نشانه CDP مشترک دارند. اثر انگشت مبتنی بر Firefox پروفایلی واقعاً متفاوت به شما میدهد — زمانی مفید است که هدف، شناسایی خود را مشخصاً علیه Chrome بدون رابط گرافیکی تنظیم کرده باشد.
- چرخش اثر انگشت داخلی است. هر اجرا میتواند یک پروفایل دستگاه تازه و سازگار درونی (سیستمعامل، صفحهنمایش، سختافزار، زبان) تولید کند، پس نیازی به نگهداری دستی دیکشنریهای اثر انگشت ندارید.
- API پلیرایت (Playwright). اگر از قبل با Playwright کار میکنید، کد فراخوانی برایتان آشناست — Camoufox پکیج پایتون اختصاصی خودش (
camoufox[geoip]) را دارد که آن را در بر میگیرد.
این ویژگیها Camoufox را در برابر شناسایی مرورگرهای بدون رابط گرافیکی گزینهای قوی میکنند و آن را به خواهر طبیعی Firefoxی ابزارهای Chromium تبدیل میکنند. اما شناسایی لایهلایه است — مرورگر تنها یکی از آن لایههاست.
بخشی که Camoufox حل نمیکند: آیپی شما
یک اثر انگشت کامل و سازگار درونی، همچنان از هر شبکهای که روی آن اجرایش میکنید خارج میشود. اگر آن شبکه یک محدوده AWS، GCP یا Hetzner باشد، سیستمهای ضدتقلب پیش از آنکه اثر انگشت Firefox شما اصلاً ارزیابی شود، بر اساس اعتبار ASN امتیازتان را میدهند — این تفاوت در پروکسی خانگی در برابر دیتاسنتر توضیح داده شده است. این رایجترین دلیلی است که یک اسکریپت Camoufox روی لپتاپ شما کار میکند اما به محض استقرار روی یک VM ابری از کار میافتد — اثر انگشت تغییر نکرده، ASN تغییر کرده است. خروجیهای خانگی یا موبایل، اعتماد کاربر واقعی را با خود دارند؛ Camoufox لایه مرورگر را مدیریت میکند، پروکسیها لایه شبکه را، و به هر دو نیاز دارید.
تنظیم پایه پروکسی
Camoufox پروکسی را بهصورت دیکشنری در سازنده Camoufox میگیرد، در همان قالبی که Playwright استفاده میکند. اطلاعات ورود مستقیماً در دیکشنری قرار میگیرد — بدون دیالوگ ورود، بدون رهگیری درخواست؛ لایه Firefox احراز هویت پروکسی را برایتان مدیریت میکند. با Roam، نقطه پایانی gw.roamproxy.com:41080 است و کشور خروجی را با افزودن -country-<cc> به نام کاربری انتخاب میکنید:
from camoufox.sync_api import Camoufox
PROXY = {
"server": "http://gw.roamproxy.com:41080",
"username": "USERNAME-country-us",
"password": "PASSWORD",
}
with Camoufox(proxy=PROXY, headless=True) as browser:
page = browser.new_page()
page.goto("https://ipinfo.io/json")
print(page.content())
آن را اجرا کنید و JSON باید یک ارائهدهنده اینترنت خانگی در کشور انتخابی شما را نشان دهد — همین است کل یکپارچهسازی. هرچه در ادامه میآید درباره انجام درست آن است.
هماهنگسازی اثر انگشت با خروجی: geoip=True
اینجاست که Camoufox ارزش خودش را ثابت میکند. geoip=True را پاس بدهید و Camoufox آیپی خروجی پروکسی را جستوجو کرده و بهصورت خودکار منطقه زمانی، زبان و موقعیت جغرافیایی جعلی را با آن هماهنگ میکند. این کار رایجترین نشتی ناسازگاری را میبندد — یک آیپی خانگی آمریکایی همراه با اثر انگشتی که Europe/Berlin را گزارش میدهد:
from camoufox.sync_api import Camoufox
PROXY = {
"server": "http://gw.roamproxy.com:41080",
"username": "USERNAME-country-us",
"password": "PASSWORD",
}
with Camoufox(proxy=PROXY, geoip=True, humanize=True, headless=True) as browser:
page = browser.new_page()
page.goto("https://example.com")
print(page.content())
humanize=True حرکت نشانگر ماوس شبیه انسان بین اقدامات اضافه میکند — بیمهای ارزان در برابر بررسیهای رفتاری که کلیکهای آنی و دقیق پیکسلی را علامتگذاری میکنند. (geoip=True به بسته اضافه camoufox[geoip] نیاز دارد.)
چرخش خروجیها: یک پروکسی برای هر اجرا
چون اثر انگشت در هر اجرا دوباره تولید میشود، تمیزترین مدل چرخش با Camoufox این است: یک اجرا = یک خروجی = یک اثر انگشت تازه. با Roam برای این کار نیازی به فهرستی از گیتویها ندارید — یک برچسب -session-<id> تازه در نام کاربری، از استخر یک آیپی خانگی تازه درخواست میکند، پس پروفایل دستگاه و آیپی با هم میچرخند:
from camoufox.sync_api import Camoufox
import itertools
SESSION = itertools.count(1)
def scrape(url, country="us"):
proxy = {
"server": "http://gw.roamproxy.com:41080",
"username": f"USERNAME-country-{country}-session-cfx{next(SESSION)}",
"password": "PASSWORD",
}
with Camoufox(proxy=proxy, geoip=True, headless=True) as browser:
page = browser.new_page()
page.goto(url)
return page.content()
همزمانی را محدود نگه دارید — هر نمونه Camoufox یک فرآیند واقعی Firefox است، و دهها نمونه همزمان مدتها پیش از آنکه استخر پروکسی شما شکایت کند، رم را تمام میکند. برای حجم بالا، یک استخر کوچک از نمونههای دیرپا بهتر از ساختن یک نمونه به ازای هر URL عمل میکند.
نشستهای پایدار برای ورود به حساب و سبد خرید
چرخش در هر اجرا برای اسکرپینگ بدون وضعیت مناسب است، اما هر چیز دارای وضعیت — یک ورود، یک سبد خرید، یک فرآیند چندمرحلهای — اگر آیپی در میانه نشست تغییر کند، از هم میپاشد. یک نمونه Camoufox (و یک خروجی پایدار) را برای کل فرآیند احرازهویتشده نگه دارید و فقط در مرز حساب یا وظیفه بچرخانید. با Roam، خروجی تا زمانی که توکن -session-<id> در نام کاربری یکسان بماند پایدار است — این شناسه را برای کل عمر نشست ثابت نگه دارید و geoip را با آن هماهنگ نگه دارید. برای حسابهایی که ماهها به آنها وارد میشوید، یک آیپی خانگی ثابت اختصاصی ($4 هر آیپی در ماه) حتی پایدارتر است. چرخش شما را وارد میکند؛ نشست پایدار پس از ورود، شما را وارد نگه میدارد.
اثر انگشت و آیپی باید همخوانی داشته باشند
Camoufox یک اثر انگشت مرورگر سازگار درونی به شما میدهد و geoip=True اثر انگشت را با جغرافیای خروجی همتراز میکند — اما مایل آخر همچنان بر عهده شماست. یک ASN آشکارا دیتاسنتری را پشت یک Firefox که ظاهری خانگی دارد اجرا نکنید، و زبان تولیدشده Camoufox را با چیزی که با محل واقعی خروج پروکسیتان تناقض دارد بازنویسی نکنید. همین انضباط درباره مرورگرهای آنتیدیتکت بهطور کلی هم صدق میکند: برای اتوماسیونی که بدون نظارت اجرا میشود، همین سازگاری است که یک نشست چندساعته را از نشستی که در همان درخواست اول به چالش کشیده میشود جدا میکند.
پیش از مقیاسگذاری تأیید کنید
پیش از هدایت ناوگان Camoufox به سمت یک هدف، تأیید کنید خروجی شما از بیرون واقعاً چه شکلی است. ابزار بررسی آیپی ما را از طریق مرورگر بارگذاری کنید تا آیپی خروجی و ASN را بخوانید — باید بهعنوان خانگی/موبایل خوانده شود، نه ارائهدهنده ابری که رویش مستقر شدهاید — و آزمون اثر انگشت مرورگر را اجرا کنید تا دقیقاً ببینید یک آشکارساز چه میبیند. اگر هم اثر انگشت و هم آیپی شبیه یک کاربر واقعی به نظر برسند، دو لایهای را که Camoufox بهتنهایی نمیتواند ببندد، بستهاید.
خلاصه
- Camoufox لایه مرورگر را حل میکند — ضدشناسایی بهصورت بومی در Firefox پچ شده، همراه با API پلیرایت و چرخش اثر انگشت در هر اجرا.
- این ابزار هیچ کاری برای لایه شبکه انجام نمیدهد — شما همچنان از ASN خودتان خارج میشوید.
geoip=Trueبهصورت خودکار منطقه زمانی/زبان/موقعیت جغرافیایی را با خروجی پروکسی هماهنگ میکند و رایجترین نشتی ناسازگاری را میبندد؛humanize=Trueبررسیهای رفتاری را پوشش میدهد.- در هر اجرا یک خروجی را بچرخانید (برچسب
-sessionتازه) تا اثر انگشت و آیپی با هم بچرخند؛ برای فرآیندهای دارای وضعیت یک خروجی پایدار نگه دارید. - اثر انگشت، زبان و جغرافیای آیپی را سازگار نگه دارید و پیش از مقیاسگذاری خروجی را تأیید کنید.
سوالات متداول
چطور در Camoufox پروکسی تنظیم کنم؟
یک دیکشنری به سبک Playwright به سازنده Camoufox پاس بدهید: proxy={"server": "http://gw.roamproxy.com:41080", "username": "USERNAME-country-us", "password": "PASSWORD"}. Camoufox پروکسیهای تأییدهویتدار را بهصورت بومی در لایه Firefox مدیریت میکند — نیازی به دیالوگ ورود یا رهگیری درخواست نیست.
geoip=True در Camoufox چه کاری انجام میدهد؟
Camoufox آیپی خروجی پروکسی شما را جستوجو میکند و بهصورت خودکار منطقه زمانی، زبان و موقعیت جغرافیایی جعلی را با آن هماهنگ میکند. این کار رایجترین نشتی ناسازگاری را میبندد — یک آیپی خانگی آمریکایی همراه با اثر انگشتی که منطقه زمانی اروپا را گزارش میدهد. این ویژگی به بسته اضافه camoufox[geoip] نیاز دارد.
چطور در طول یک نشست Camoufox همان آیپی را حفظ کنم؟
یک توکن ثابت -session-<id> به نام کاربری Roam خود اضافه کنید و آن را برای کل عمر فرآیند یکسان نگه دارید — این توکن به همان آیپی خانگی پایدار نگاشت میشود. برای چرخش، توکن را تغییر دهید (یا در هر اجرا از توکنی تازه استفاده کنید). برای حسابهایی که ماهها نگه میدارید، یک آیپی خانگی ثابت اختصاصی ($4 هر آیپی در ماه) حتی پایدارتر است.
آیا میتوانم Camoufox را با Roam رایگان امتحان کنم؟
بله. Roam یک دوره آزمایشی رایگان خانگی 300 مگابایتی بدون نیاز به کارت بانکی ارائه میدهد — کافی است تا Camoufox را از طریق یک خروجی خانگی واقعی اجرا کنید، اثر انگشت و ASN را تأیید کنید و پیش از پرداخت مطمئن شوید هدف شما را عبور میدهد. پس از آن، $2 هر گیگابایت بر اساس مصرف، بدون اشتراک.
به Camoufox یک خروجی خانگی واقعی بدهید: با 300 مگابایت رایگان شروع کنید — بدون کارت، سپس $2 هر گیگابایت بر اساس مصرف بدون اشتراک. مطالعه مرتبط: راهاندازی پروکسی Kameleo · پروکسی برای مرورگرهای آنتیدیتکت · پروکسی برای اسکرپینگ وب.