Gistrec

Антикапча API

Dec 4th, 2018
365
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const utils  = require('../utils')
  2. const axios  = require('axios')
  3.  
  4. /**
  5.  * Получаем текст капчи с помощью API anti-captcha.com
  6.  * @rapam url - ссылка на изображение
  7.  * @return [error, solution] - ошибка и решение капчи
  8.  */
  9. exports.getCaptcha = async function(url) {
  10.     // Получаем картинку
  11.     var response = await axios(url, {responseType: 'arraybuffer'});
  12.    
  13.     // Параметры для создания задачи
  14.     var params = {
  15.         "clientKey":"...",
  16.         "task": {
  17.             "type": "ImageToTextTask",
  18.             "body": Buffer.from(response.data, 'binary').toString('base64'),
  19.             "phrase": false,
  20.             "case": false,
  21.             "numeric": 0,
  22.             "math": 0,
  23.             "minLength": 0,
  24.             "maxLength": 0
  25.         }
  26.     }
  27.     // Создаем задачу 
  28.     const task = await axios.post('https://api.anti-captcha.com/createTask', params);
  29.     taskId = task.data.taskId
  30.  
  31.     // Ждем 5 секунд
  32.     await utils.sleep(5000)
  33.    
  34.     // Параметры для проверки статуса задачи
  35.     var params = {
  36.         "clientKey":"...",
  37.         "taskId": taskId
  38.     }
  39.  
  40.     // Пока не получим ответ - будем спрашивать результат каждую секунду
  41.     while (true) {
  42.         var response = await axios.post('https://api.anti-captcha.com/getTaskResult', params);
  43.         console.log(response.data)
  44.         // Если получен ответ
  45.         if (response.data.status == 'ready') {
  46.             return [null, response.data.solution.text];
  47.         }
  48.         await utils.sleep(1000)
  49.     }
  50. }
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment