Menu

چطور با وظیفه‌های AntiGate از هر کپچایی عبور کنیم

یک نسخه ویدئویی از خودآموز وظیفه‌های AntiGate در اینجا در دسترس قرار دارد.

ما پس از سال‌ها تحقیق و توسعه، راه‌حلی فراگیر به شما معرفی می‌کنیم که کمک می‌کند ربات‌هایتان از کپچاهای ساخته شده به دست بشر عبور کنند. ما آن را «AntiGate» نامیدیم. این‌ها، قالب‌های سناریو هستند که نیروی کار انسانی ما از آنها برای انجام وظایف دقیق استفاده می‌کنند.

در نقطه‌ی خاصی از زمان، اپلیکیشن شما با حفاظت خودکار "gateway" با نوع جدیدی از کپچا، اسکریپت‌های مرورگر مبهم یا چیزهای دیگر روبرو خواهد شد. این همان جایی است که وظیفه‌های AntiGate وارد عمل می‌شوند. شما کار ساختن یک نشست مرورگر متعلق به انسان واقعی را به کارگران ما محول می‌کنید.
  • ابتدا یک قالب انتخاب کنید. هم می‌توانید از یکی از قالب‌های موجود استفاده کنید و هم می‌توانید خودتان یکی بسازید. یک قالب، مجموعه‌ای از دستورالعمل‌های گام به گام است که کارگران اجرایش می‌کنند.
  • در مرحله‌ی دوم، همه اطلاعاتی که قالب نیاز دارد را فراهم کنید. این اطلاعات می‌توانند شامل مقدار یک ورودی، سلکتور CSS یک ورودی یا آدرس اینترنتی‌ای باشد که ما باید به آن برویم. در ادامه، درباره قالب‌ها بیشتر صحبت خواهیم کرد.
  • مرحله‌ی سوم اختیاری – پروکسی‌ها. اگر وب‌سایتی وجود داشته باشد که کوکی‌های هر نشست را فقط به یک آدرس IP دقیق مرتبط کند، به پروکسی‌ها نیاز خواهید داشت.
شما با داشتن این سه مورد با API ما یک وظیفه ایجاد می‌کنید. کارگر با پلاگین ویژه مرورگر ما به وب‌سایت شما می‌رود و همه مراحل سناریو را به‌صورت دستی یا خودکار اجرا می‌کند. در پایان این اسکریپت، ما همه اطلاعات نشست مرورگر آنها مثل کوکی‌ها، مقادیر حافظه محلی، اثر انگشت مرورگر را می‌گیریم و دوباره به اپ شما برمی گردانیم. کل چیزی که باقی می‌ماند، این است که از این داده‌ها برای ذخیره نشست کارگر ما استفاده کنید و عملیات را طوری ادامه دهید که انگار یک کاربر انسانی وجود دارد. خب حالا می‌بینید که این روند چقدر جذاب و خارق العاده است؟ :)

قالب‌های AntiGate چه هستند؟

قالب AntiGate سناریویی دقیق را تعریف می‌کند که کارگران ما باید دنبالش کنند. قالب‌ها از مراحلی تشکیل می‌شوند که همه آنها به ترتیب اجرا می‌شوند. وقتی یکی از مراحل کامل می‌شود، کارگر به مرحله‌ی بعد می‌رود. زمانی که تمام مراحل تکمیل شوند، وظیفه به پایان می‌رسد.در این صورت، یک اسنپ‌شات از نشست کارگر گرفته خواهد شد و به اپ شما ارسال می‌شود.

چه مراحلی وجود دارند؟
  • یک فیلد ورود متن را به طور خودکار یا دستی پر کنید.
  • منتظر بمانید تا نمونه متن روی صفحه ظاهر شود (یا ناپدید شود).
  • منتظر بمانید تا عنصر DOM تعریف‌شده توسط CSS روی صفحه ظاهر شود (یا ناپدید شود).
  • منتظر بمانید تا کلیدواژه در آدرس URL مرورگر فعلی کارگر ظاهر شود (یا ناپدید شود).
کادر متنی " description for workers " (شرح برای کارگران) می‌تواند سایر مراحلی که از کارگر انتظار دارید را شرح بدهد. مثلاً "Solve a captcha and press the submit button" (یک کپچا را حل کن و دکمه ارسال را بزن).
بیایید یک مثال را مرور کنیم. به مرکز توسعه‌دهندگان بروید و یک قالب رایگان برای تست ایجاد کنید. نگران نباشید، هیچ چیزی را خراب نخواهید کرد!
کلیک کنید تا قالب اضافه شود
کلیک کنید تا مثال، بارگذاری شود
به بخش مراحل توجه کنید
یک نمونه نمایشی را بارگزاری کردید. می‌توانید این نمونه را در حساب‌تان ذخیره کنید و خودتان بعداً امتحانش کنید. بیایید با لیست کامل ویژگی‌های قالب آشنا شویم:
  • نام قالب . وقتی قالب ذخیره شد، نمی‌توان آن را اصلاح کرد. وقتی منتشر کنید، قالب شما در API با این نام در دسترس خواهد بود.
  • شرح برای مشتریان . قالب‌های عمومی در دایرکتوری قالب‌ها در دسترس هستند.
  • شرح برای کارگران. . این متنی است که کارگران ما در بالای صفحه می‌بینند.
    مثال واسط کارگران
  • متغیرها . این لیستی از نام‌های متغیرها است که می‌توانید برای استفاده در مراحل به جای متغیرهای دائمی اضافه کنید. در این مثال ما ۲ متغیر، "login" و "password" داریم. این دو متغیر در مراحل ۱ و ۲ برای پر کردن فرم ورود نمایشی استفاده می‌شوند. به‌این‌ترتیب می‌توانید این متغیرها را به جای درج غیرمنعطف نام کاربری و رمز عبور دائمی در قالب، از طریق API ارائه کنید.
    متغیرهای مورد استفاده در مراحل ۱ و ۲
  • . اینجا می‌توانید ترتیب مراحل سناریو را ویرایش کنید و تغییر دهید. ما در مثالمان کارهای زیر را انجام می‌دهیم:
    ۱. فیلد متنی را به طور خودکار با را "#login" در CSS پر کنید. مقدار فیلد متنی را با متغیر "login"پر کنید.
    ۲. فیلد متنی را به طور خودکار با سلکتور "#password" در CSS پر کنید. مقدار فیلد متنی را با متغیر "password" تعیین می‌شود.
    ۳. منتظر ظاهر شدن متن کنترل در صفحه مدنظر باشید. این متغیر به‌صورت دائمی برابر مقدار "Test passed with login" تعیین می‌شود.

حالا می‌توانید قالب را ذخیره کنید و قالب در مرکز توسعه نمایش داده خواهد شد. توجه کنید که این قالب دارای وضعیت "Sandbox" (جعبه شنی» است. یعنی فقط در دسترس شما است و در API قابل‌دسترس نخواهد بود. از اینجا به بعد، می‌توانید قالبی که به تازگی ساخته‌اید را مثل کارگر ما که برای شما کار می‌کند، تست کنید.

تست قالب‌ها

در این لحظه، نیاز دارید که از مرورگر کروم استفاده کنید. توصیه می‌کنیم که پروفایل کاربری جدیدی در این مرورگر بسازید؛ زیرا لازم است پلاگین ما را نصب کنید که به کوکی‌های پروفایل دسترسی داشته باشد.
مثال واسط کارگران
سپس در کارت قالب خودتان، روی دکمه "تست" بزنید.
دستورالعمل‌ها را دنبال کنید و پلاگین را برای پلتفرمتان دانلود کنید. سپس، صفحه را مجدداً بارگذاری کنید تا پلاگین اجرا شود، متغیرهای "login" و "password" را با مقدارهای تصادفی پر کنید و دکمه "Launch Test" را فشار دهید. باید صفحه جدیدی مثل این باز شود:

نزدیک نوار آدرس (آدرس بار)، نواری آبی قرار دارد که پلاگین، آن را به بالای صفحه‌ی هدف اضافه می‌کند. کارگران از این طریق متوجه وظایفشان خواهند شد و اجرای وظیفه‌ را کنترل می‌کنند.

ضمناً توجه کنید که وقتی نام کاربری و رمز عبور را با متغیر پرمی‌کنید، آنها مخفی خواهند شد. این کار عمدی است. اگرچه کارگران با استفاده از کنسول توسعه‌دهنده به کل داده‌های وظیفه‌ متصل هستند، اما ۹۹.۹۹ درصد از آن‌ها نیازی نمی‌بینند به خودشان زحمت دهند که ببینند در پشت‌صحنه چه خبر است.
هنگام حل‌کردن کپچا روی کلید "ورود" بزنید. از آخرین مرحله‌ی قالب، «WAIT_CONTROL_TEXT_PRESENT» عبور خواهید کرد. این پلاگین، عبارت‌های کنترلی "با ورود در تست قبول شد" را جستجو می‌کند که به‌صورت دائمی در قالب شما تعریف می‌شوند. برگه به طور خودکار بسته می‌شود و اسنپ‌شات نشست، در فیلد نتایج نمایش داده می‌شود.
نمونه ای از نتایج

داده‌های همین اسنپ‌شات را می‌توان از API هم دریافت کرد. اما برای این که قالب شما در API قابل‌دسترس شود، ابتدا باید منتشرش کنید.

انتشار قالب‌ها

در زمان انتشار قالب، شما دو گزینه دارید: یا آن را خصوصی می‌کنید یا عمومی.
  • قالب‌های خصوصی فقط با کلید API شما قابل‌دسترس هستند. سایر مشتری‌ها نمی‌توانند از آن‌ها استفاده کنند. هزینه‌ی بررسی و انتشار آن‌ها هم ۱ دلار است.
  • قالب‌های عمومی برای همه قابل استفاده هستند. شما ۵ درصد از مبلغی که مشتری‌های دیگر هنگام استفاده از قالب شما هزینه کنند را دریافت می‌کنید. شما باید چند شیوه تماس را برای مشتری‌های ما فراهم کنید تا اگر مشکلی برای قالبتان به وجود آمد، بتوانند برای کمک به شما مراجعه کنند. هزینه‌ی بررسی و انتشار این نوع قالب ۱ دلار است.
ما تمام قالب‌ها را با دقت بررسی می‌کنیم. برای این که با موفقیت به حالت تولید بروید، باید چند شرط اولیه را رعایت کنید:
  • هیچ نوع فعالیت غیرقانونی‌ای انجام ندهید.
  • قالب‌ها نباید از روی قالب‌های موجود کپی شده باشند.
  • قالب جعلی یا آزمایشی را ارسال نکنید.
  • یک آدرس وب و مقدارهای متغیر نمونه را برای بررسی به ما بدهید. ما یک تست انجام می‌دهیم و همه مراحل تست باید با موفقیت تکمیل شوند.

درخواست‌های API

درخواست ساختن وظیفه‌ برای API در قالب AntiGate به همین سادگی خواهد بود:

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"AntiGateTask",
            "websiteURL":"https://anti-captcha.com/demo/?page=recaptcha_v2_textarea",
            "templateName":"Demo sign-in at anti-captcha.com #123456",
            "variables": {
                "login":"some value",
                "password":"some value"
            }
        }
}' https://api.anti-captcha.com/createTask

یعنی شما پارامترهای "templateName" و و "variables" را برای پر کردن در قالب، انتقال می‌دهید.

استفاده از نتایج وظیفه‌

وظایف AntiGate انجام شده با موفقیت برگرداندن یک راه‌حل که شامل "cookies"، "localStorage"، "fingerprint" و "url" می‌شود. کاری که نرم‌افزار شما باید انجام دهد این است که با استفاده از «کوکی‌ها» در این درخواست به "url" برود و حداقل از مقدار "fingerprint.self.navigator.userAgent" برای «عامل کاربر» مرورگر استفاده کند. وب سایت‌های پیچیده تر، داده‌های مهم را در حافظه محلی ذخیره می‌کنند، که معادل با نسخه مدرن کوکی‌ها است. در این مورد، قبل از اجرای هر جاوا اسکریپت، باید این داده‌ها را به صفحه تزریق کنید. این کار را می‌توان در محیط توسعه‌ای مثل Puppeteer انجام داد. این موضوع احتمالاً نیاز به شرح در مقاله دیگری دارد.

ساختن قالب‌های خودتان

کافی است مراحل بالا را بدون بالا آوردن قالب نمونه دنبال کنید. تمام جزییات را وارد کنید و مراحل را با دقت اضافه کنید. در نظر داشته باشید که مراحل یکی پس ازدیگری دنبال می‌شوند. افزونه تا زمانی که مرحله‌ی جاری تمام نشده باشد، اجازه نمی‌دهد که مرحله‌ی بعدی اجرا شود. شما هر زمانی که بخواهید می‌توانید قالبتان را ذخیره کنید و با افزونه‌ی مرورگر کارگر، تستش کنید.

قیمت گذاری

در حال حاضر ما قیمت مان را ۲ دلار به ازای ۱۰۰۰ وظیفه‌ را در نظر گرفته‌ایم. به علاوه، هر ثانیه اجرای کار یک‌شصتم (۱/۶۰) قیمت یک وظیفه‌ هزینه خواهد داشت. برای مثال یک وظیفه ۰.۰۰۲ دلار هزینه خواهد داشت اگر کارگر ۲۰ ثانیه زمان صرف حلش کند.
هزینه‌ی نهایی ۰.۰۰۲۶۶ = ۰.۰۰۲ + (۲۰ × ۶۰ / ۰.۰۰۲) خواهد بود.