close menu
انواع وظیفه مورد پشتیبانی
متدهای API
مقالات
GitHub icon
GitHub
Menu

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

نسخه ویدیویی جدید آموزش وظایف AntiGate در دسترس است اینجا.

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

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

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

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

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

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

آزمایش قالب‌ها

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

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

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

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

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

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

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

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

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

به عبارت دیگر، پارامترهای «متغیرها» (variables) و «نام قالب» (templateName) را در قالب پر می‌کنید.

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

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

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

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

قیمت

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