Basilisk - FaucetPay Captcha
Данная задача будет выполняться с использованием наших прокси-серверов.
Параметры запроса
type
<string>requiredCustomTask
class
<string>requiredBasilisk
websiteURL
<string>requiredАдрес основной страницы, на которой решается капча.
websiteKey
<string>requiredМожно найти в html коде в атрибуте data-sitekey контейнера с капчей или в payload POST-запроса на https://basiliskcaptcha.com/challenge/check-site
в поле site_key
userAgent
<string>optionalUser-Agent браузера. Передавайте только актуальный UA от ОС Windows. Сейчас таковым является: userAgentPlaceholder
Метод создания з адачи
https://api.capmonster.cloud/createTask
Запрос
{
"clientKey": "API_KEY",
"task": {
"type": "CustomTask",
"class": "Basilisk",
"websiteURL": "https://domain.io/account/register",
"websiteKey": "b7890hre5cf2544b2759c19fb2600897",
"userAgent": "userAgentPlaceholder"
}
}
Ответ
{
"errorId":0,
"taskId":407533072
}
Метод получения результата задачи
Используйте метод getTaskResult, чтобы получить решение Basilisk.
https://api.capmonster.cloud/getTaskResult
Запрос
{
"clientKey":"API_KEY",
"taskId": 407533072
}
Ответ
{
"errorId":0,
"status":"ready",
"solution": {
"data": {
"captcha_response": "5620301f30daf284b829fba66fa9b3d0"
},
"headers": {
"User-Agent": "userAgentPlaceholder"
}
}
}
Как найти все нужные параметры для создания задачи на решение
Вручную
- Откройте ваш сайт, где отображается капча, в браузере.
- Правой кнопкой кликните по элементу капчи и выберите Inspect.
websiteKey
Во вкладке Network фильтруйте запросы по ключевым словам, связанным с капчей, например, site_key. В запросах будет присутствовать параметр site_key – параметр для идентификации сайта в процессе прохождения капчи:
Автоматически
Удобный способ автоматизировать поиск всех необходимых параметров. Некоторые параметры генерируются заново при каждой загрузке страницы, поэтому для их извлечения потребуется работать через браузер – обычный или в режиме headless (например, с помощью Playwright). Так как значения динамических параметров хранятся недолго, капчу нужно решать сразу после их получения.
Приведённые фрагменты кода являются базовыми примерами для ознакомления в извлечении необходимых параметров. Точная реализация будет зависеть от вашего сайта с капчей, его структуры и используемых HTML-элементов и селекторов.
- JavaScript
- Python
- C#
Показать код (для браузера)
// Ищем элемент с атрибутом data-sitekey
const captchaElement = document.querySelector('[data-sitekey]');
// Извлекаем значение sitekey
if (captchaElement) {
const siteKey = captchaElement.getAttribute('data-sitekey');
console.log('Found site-key:', siteKey);
} else {
console.log('site-key not found');
}
Показать код (Node.js)
import { chromium } from 'playwright';
async function extractSiteKey() {
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
const url = 'https://example.com';
await page.goto(url);
// Ищем элемент с атрибутом data-sitekey
const captchaElement = await page.$('[data-sitekey]');
// Извлекаем значение sitekey
if (captchaElement) {
const siteKey = await captchaElement.getAttribute('data-sitekey');
console.log('Found site-key:', siteKey);
} else {
console.log('site-key not found');
}
await browser.close();
}
extractSiteKey();
Показать код
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=False)
page = await browser.new_page()
url = 'https://example.com/captcha-page'
await page.goto(url)
# Ищем элемент с атрибутом data-sitekey
captcha_element = await page.query_selector('[data-sitekey]')
# Извлекаем значение sitekey, если элемент найден
if captcha_element:
site_key = await captcha_element.get_attribute('data-sitekey')
print('Found site-key:', site_key)
else:
print('site-key not found')
await browser.close()
asyncio.run(main())
Показать код
using System;
using System.Threading.Tasks;
using Microsoft.Playwright;
class Program
{
static async Task Main(string[] args)
{
string url = "https://example.com/captcha-page";
using var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions {
Headless = false });
var page = await browser.NewPageAsync();
await page.GotoAsync(url);
// Ищем элемент с атрибутом data-sitekey
var captchaElement = await page.QuerySelectorAsync("[data-sitekey]");
// Извлекаем значение sitekey, если элемент найден
if (captchaElement != null)
{
var siteKey = await captchaElement.GetAttributeAsync("data-sitekey");
Console.WriteLine("Found site-key: " + siteKey);
}
else
{
Console.WriteLine("site-key not found");
}
await browser.CloseAsync();
}
}
Используйте библиотеку SDK
- JavaScript
- Python
- C#
// https://github.com/ZennoLab/capmonstercloud-client-js
import { CapMonsterCloudClientFactory, ClientOptions, BasiliskRequest } from '@zennolab_com/capmonstercloud-client';
document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' }));
console.log(await cmcClient.getBalance());
const basiliskRequest = new BasiliskRequest({
websiteURL: 'https://example.com',
websiteKey: 'websiteKey',
});
console.log(await cmcClient.Solve(basiliskRequest));
});
# https://github.com/ZennoLab/capmonstercloud-client-python
import asyncio
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import BasiliskCustomTaskProxylessRequest
client_options = ClientOptions(api_key="your_api_key") # Replace with your CapMonster Cloud API key
cap_monster_client = CapMonsterClient(options=client_options)
basilisk_request = BasiliskCustomTaskProxylessRequest(
websiteUrl="https://example.com", # URL with captcha
websiteKey="b3760bfe5cf4254b2759c19fg2698og" # Replace with the correct website key
)
async def solve_captcha():
return await cap_monster_client.solve_captcha(basilisk_request)
responses = asyncio.run(solve_captcha())
print(responses)
// https://github.com/ZennoLab/capmonstercloud-client-dotnet
using Zennolab.CapMonsterCloud.Requests;
using Zennolab.CapMonsterCloud;
class Program
{
static async Task Main(string[] args)
{
var clientOptions = new ClientOptions
{
ClientKey = "your_api_key" // Replace with your CapMonster Cloud API key
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
var basiliskRequest = new BasiliskCustomTaskProxylessRequest
{
WebsiteUrl = "https://example.com", // URL with captcha
WebsiteKey = "b3760bfe5cf4254b2759c19fg2698og" // Replace with the correct website key
};
var basiliskResult = await cmCloudClient.SolveAsync(basiliskRequest);
Console.WriteLine("Captcha Solution: " + string.Join(", ", basiliskResult.Solution.Data));
Console.WriteLine("Captcha Solution: " + string.Join(", ", basiliskResult.Solution.Headers));
}
}