Вот мы и подошли к вопросу, который интересует большинство ботоводов и скриптописателей. Сегодня мы будем создавать эффективный алгоритм для распознавания гугловской reCaptcha v2 при помощи iMacros. Первая версия этой капчи была проще, там нужно было ввести пару слов с картинки. В интернете есть различные скрипты, в том числе и для iMacros, по распознаванию капчи, но не всегда они способны работать четко и бесперебойно. Сегодня я сначала рассмотрю некоторые сервисы по распознаванию и мы напишем хорошего и быстрого бота по решению рекапча на iMacros и Javascript.
Сервисы для распознавания капчи
Сервис Rucaptcha.com
https://rucaptcha.com — самый популярный и удобный сервис для распознавания изображений. Помимо разгадывания обычных капч, позволяет распознавать reCaptcha2 без отправки изображений на сервер распознавания, да и в принципе без браузера, удобно для ботов на get-запросах, и шанс распознавания 100%.
Еще у них очень хороший раздел с русской документацией, там есть различные примеры и подробнейшее описание API. Количество работников, единовременно распознающих капчи, зависит от времени суток и иногда достигает 4000 человек. Скорость распознавания бывает разная, но обычно 10-40 сек. у меня.
Расценки за 1000 распознаваний(актуально на 17.01.2017):
- 22-44 руб. Простые капчи
Сумма высота и ширины картинки меньше 400px - 50 руб — Большая капча
Сумма высота и ширины картинки больше 400px, например, стандартная reCaptcha v2. имеет размер 300x300px — в сумме получается 600px. - 70 руб. — ReCaptcha2
От большой капчи отличается тем, что распознавателю накладывается сетка и они кликает по ней. Не использую этот вариант, поскольку он дороже большой капчи. - 160 руб. — ReCaptcha2 без необходимости слать изображения на сервер распознавания
Самый крутой, но и самый дорогой вариант, поскольку гарантирует 100% распознавание и можно использовать в ботах, не имеющих браузерного движка. Вы шлете id вашей капчи и работники рукапчи распознают и шлют вам ответ, в-будущем может появится необходимость слать еще и ваш прокси, но пока гугл не блочит разницу в ip между отправителем и получателем капчи.
Сервис antigate.com
Более старый аналог рукапчи, но цены выше, в районе 1$(около 60 руб. за 1000 распознаваний на данный момент). Не использую.
Программа CapMonster 2 от Zennolab
zennolab.com/ru/products/capmonster/buy-now/ — Автоматизированное ПО для распознавания более 160 видов различных капч, самый простой вариант на 20 одновременных потоков стоит 97$ в год. Также позволяет разгадывать аудиокапчу , что особенно ценно и reCaptcha v2.
http://zennolab.com/ru/products/capmonster/capmonster-lite-samples/ — Тут примеры капч, которые он распознает.
Программа ставится на компьютер и для распознавания использует ресурсы вашего компьютера, поддерживается использование всех ядер CPU и даже распознавание на GPU(видеокарте). То есть, это не облачный сервис и распознавание осуществляется непосредственно вашим компьютером. При запуске, программа создает локальный сервер, на который можно слать капчи из любых программ и скриптов, в том числе и iMacros по стандартному http-протоколу, точно также, как мы будем слать капчи в это статье на сервис рукапчи.
Пару слов о старом способе распознавания reCaptcha 2 с отправкой изображения на сервер
Любое написание бота нужно начинать с исследования, чтобы можно было предусмотреть все различные варианты событий. Давайте для начала откроем сайт с демкой рекапчи https://www.google.com/recaptcha/api2/demo.
Теперь попробуем посмотреть какая капча нам может попасться:
Используя старый способ распознавания капчи, мы бы нажимали кнопку смены капчи, до тех пор, пока бы нам не попалась капча 2×4 или 3×3 клетки. Самую ублюдскую картинку 4х4 со знаками и улицами следовало бы игнорировать. Однако при 100% — распознавании, которое я хочу рассмотреть, нам это не потребуется.
Несколько наблюдений при использовании старого способа с отправкой картинки на рукапчу:
- Названия кнопок, текст задания, могут отличаться в зависимости от языка операционной системы или браузера. Поэтому не используем в скриптах селекторы по тексту кнопки.
- Если вы залогинены в свой гугл-аккаунт, вам придется реже вводить капчу, иногда будет пропускать и без выбора картинок.
- Бывает так, что вы выбираете картинку, а она исчезает и нужно выбирать другую. Такие ситуации геморройно отслеживать и в итоге цена капчи в такой ситуации будет невыгодна, если такое происходит постоянно, то нужно использовать способ за 160 руб за 1000 распознаваний, где подобная проблема решена и шанс распознавания 100%.
- На решение капчи вам дается 75 секунд, после чего окошко с картинками автоматом закрывается и после повторного открытия, капча изменяется на другую.
- За частое распознавание аудиокапчи можно словить бан, за распознавание и частую смену картинок бан не получить и менять картинки можно сколько угодно.
- Часто слышал про дополнительный тип капчи, называемый «Ассоциации», который появляется, если активно ботоводить, распознавая reCaptcha 2 с одного айпи.
Если вы знаете еще какие-то особенности при работе с рекапчей, пишите, пожалуйста в комментариях.
100%-распознавание reCaptcha 2 при помощи iMacros+Javascript без отправки картинки на сервер рукапчи
Я не буду рассматривать старые способы разгадывания капчи за 50 руб. Я рассмотрю способ, который обойдется в 160 руб. за 1000 распознаваний, но со 100% вероятностью. Наверное, это не подойдет тем, кто привык собирать халявные биткойны с кранов и прочую валюту с различных бонусников. Даже учитывая текущую цену биткойна в ~50 000 руб., стоимость одного разгадывания капчи будет 16 копеек(320 сатоши), а очень редкие краны дают больше 100-200 сатоши за клейм. Это невыгодно и убыточно.
Я все же пришел к выводу, что сбор таких бонусов — неэффективен в плане заработка. Выгоднее написать бота, который ведет группу в вк или наполняет сайт на автомате, размещает рекламные посты на досках, регается и постит на форумах и т.д., в-общем работает более эффективно, привлекая рефераллов или траффик на целевой сайт.
Ладно, ближе к делу. Суть способа в том, что мы получаем параметр data-sitekey
у рекапчи и отсылаем его на сервер распознавания. После, получаем код с рукапчи, который вставляем в скрытую textarea
. Все, капча пройдена, можно делать сабмит формы. Что любопытно, галочку на самой рекапче ставить не надо, так как гугл пока не проверяет поведение пользователя и нажатие на эту кнопку.
Для отправки запроса на сервер рукапчи мы будем использовать XMLHttpRequest
.
Важная деталь: нам не подойдет window.XMLHttpRequest();
— мы будем использовать Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1")
. Объясняю почему: на некоторых сайтах стоит защита от изменения DOM-дерева, например прописана политика безопасности контента CSP(Content Security Policy), из-за которой нельзя изменять DOM-дерево и соответственно использовать new window.XMLHttpRequest();
. Вариант, который я предложил, мы можем использовать, поскольку он выполняется не в контексте текущего защищенного окна, а в контексте браузера.
Мой скрипт отправляет код капчи на сервер рукапчи и потом каждые 5 секунд проверят, разгдана капча или нет. Если в течении 70 секунд разгадать по каким-либо причинам не удалось, то скрипт завершает свою работу. Что бы, не случилось, скрипт возвращает объект, в котором указано разгадана ли была капча, были ли ошибки и текст ошибки.
Полный скрипт для 100-% распознавания reCaptcha 2 на JS+iMacros:
var Nagibaka = { /** * Solve Google reCaptcha v.2 with rucaptcha.com service * * @author: Nagibaka<nagibaka.ru> * @date: 18.01.2017 * @version : 1.0 * * @param {String} ruCaptchaKey [API key from rucaptcha.com] * @return {JSON} [Object with info about success or errors] */ fuckReCaptcha2: function (ruCaptchaKey) { iimPlayCode('SET !EXTRACT_TEST_POPUP NO'); iimPlayCode('SET !ERRORIGNORE YES'); iimPlayCode('SET !TIMEOUT_STEP 0'); var out = { isSolved: false, hasError: false, errorText: "no text" }; var reqCount = 0; function checkSolution (gkey, rucapKey) { if (reqCount > 14) { // 14 * 5 = 70 second timeout out = { isSolved: false, hasError: true, errorText: "Rucaptcha timeout error." }; return; } iimPlayCode('WAIT SECONDS=5'); var XMLHttpRequestT = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var xhr = new XMLHttpRequestT(); var url = "http://rucaptcha.com/res.php?key=" + ruCaptchaKey + "&action=get&id=" + gkey + "&json=1" xhr.open('GET', url, false); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.timeout = 60000; // processing results try { xhr.send(); if (xhr.status != 200) { out = { isSolved: false, hasError: true, errorText: xhr.statusText }; } else { var res = JSON.parse(xhr.responseText); if (res.status == 1) { window.document.querySelector('.g-recaptcha-response').style = ""; window.document.querySelector('.g-recaptcha-response').textContent = res.request; out = { isSolved: true, hasError: false, errorText: "Success!" }; } else { reqCount++; checkSolution (gkey, ruCaptchaKey) } } } catch (e) { out = { isSolved: false, hasError: true, errorText: e.name }; } } if (window.document.querySelector('.g-recaptcha') == null) { return { isSolved: false, hasError: true, errorText: "Recaptcha not found on page." }; } var dataSiteKey = window.document.querySelector('.g-recaptcha').getAttribute('data-sitekey'); var domen = window.location.host; var params = "key=" + ruCaptchaKey + "&method=userrecaptcha&googlekey=" + dataSiteKey + "&pageurl=" + domen + "&json=true&header_acao=1"; var XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var xhr = new XMLHttpRequest(); xhr.open('POST', "http://rucaptcha.com/in.php", false); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.timeout = 60000; try { xhr.send(params); if (xhr.status != 200) { out = { isSolved: false, hasError: true, errorText: xhr.statusText }; } else { var res = JSON.parse(xhr.responseText); if (res.status == 1) { checkSolution(res.request, ruCaptchaKey); } else { out = { isSolved: false, hasError: true, errorText: xhr.statusText }; } } } catch (e) { out = { isSolved: false, hasError: true, errorText: e.name }; } return out; } }; // Пример использования на сайте https://www.google.com/recaptcha/api2/demo iimPlayCode('SET !TIMEOUT 30\r\nURL GOTO=https://www.google.com/recaptcha/api2/demo'); var result = Nagibaka.fuckReCaptcha2("ruCaptcha API-key here..."); window.console.log(result); // Check if captcha solved if (result.isSolved) { window.document.querySelector('#recaptcha-demo-submit').click(); } else { window.console.log(result.errorText) }
Кода могло быть и поменьше, но я постарался предусмотреть различные ситуации, которые могут привести к остановке работы скрипта и предотвратил их. Всегда нужно стремиться писать такие скрипты, которые могут бесперебойно работать 24\7.
Классный блог у тебя 😉 Жду статей в категории nodejs+imacros, было бы интересно почитать.
Насчет рекапчи вконтакте, не знаешь каким образом отправлять пост запрос после того как получил ответ от рукапчи? Кнопки отправить там нет, я так понимаю нужно повторить пост запрос, на который вышла рекапча, но с добавлением кода разгадки рекапчи, но как это смоделировать не понимаю.
По Node.js+iMacros будут статьи для раздела «Создаем свой ботнет». Но, чуть позже, сначала хочу дописать основной материал по «Урокам iMacros+JS».
У тебя тут странная форма комментирования, после отправки непонятно отправилось ли или нет.. Просто страница перезагружается.
Поэтому еще раз напишу, у тебя есть решение как прикрутить к ВК такую капчу? Там нужно отправить пост запрос после разгадывания, потому что кнопки отправить там нет. Как это смоделировать? Как повторить пост запрос с добавлением кода разгадывания? Хоть в какую сторону копать подскажи пожалуйста ))
Ваши комментарии почему-то попали в спам.
По поводу вконтакте, думаю там можно инициировать сабмит, но надо разбираться и смотреть что там и как.
И есть ньюанс, на рукаптче в faq пишут, что на вк 100%-способ разгадывания капчи не всегда прокатывает, возможно там используются дополнительные способы защиты или анализа поведения пользователя.
Укажите куда нужно вставлять gкеy и ключ рукаптчи вернее выделите в коде скрипта приведенным вами примере
я так понимаю, скрипт сам его выдергивает из странички которую ты указываешь в запросе iimPlayCode(‘SET !TIMEOUT 30\r\nURL GOTO=https://www.google.com/recaptcha/api2/demo’);
gкеy он выдергивает в коде на 105 — 106 строке
«var dataSiteKey = window.document.querySelector(‘.grecaptcha’).getAttribute(‘data-sitekey’);
var domen = window.location.host;»
ключ капчи надо указывать в строчке 160 вместо ruCaptcha API-key here…
Здравствуйте, у вас годный блог, регулярно захожу и не зря) Но вот столкнулся с проблемой, искал в гугле, по форумах и у вас смотрел — не нашел ответа, может вы подскажите как картинку загрузить в переменную, можно ли вообще такое сделать. Мне нужно вставить картинку вместе с текстом на почте для рассылки. Если загрузить картинку средствами на самом рамблере, то она идет прикрепленным файлом, а хотелось бы чтобы человек открыл письмо, а там красивая инфографика.
Женя, сделать можно.
За 5 минут я тебе решение не накидаю, но куда двигаться — подскажу.
Такую задачу решать в лоб реально, но геморройно и времязатратно и я думаю у вас знаний js просто не хватит.
Если задача — рассылка красивых писем с определенного адреса, то можно использовать какие-нибудь скрипты на node.js например + запуск стороннего скрипта отправки почты из iMacros. К любой почте можно подключиться через стандартный SMTP-протокол.
Да, вот видите не хватает знаний-то раз обращаюсь) А не подскажите ресурс для изучения ноды, с ней не работал никогда.
помогите разобраться попробовал код вставив туда ключ от рекапчи скрипт не чего не делает(((
браузер луна
в фаерфоксе выдает ошибку
Error: Accessing content window is not supported in multiprocess Firefox, line 208 (Error code: -991)
Версию iMacros 8.9.7 поставьте и браузер подревнее, например Firefox 35.
ок спс помогло
чтобы разгадать копчю в другом месте надо только поменять эту строчку?
// Пример использования на сайте https://www.google.com/recaptcha/api2/demo
iimPlayCode(‘SET !TIMEOUT 30\r\nURL GOTO=https://www.google.com/recaptcha/api2/demo’);
Алексей, да.
скрипт отрабатывает деньги на рукапче списываются а галка на капче не появляется?(ставится)
Алексей, все верно. При данном методе галка и не нужна для прохождения капчи. Важно, что на сервер отправляется корректный запрос, галка — это просто часть интерфейса.
извеняюсь еще раз но можно чтобы скрипт взаимодействовал с интерфейсом а то вроде и кача разгадана и результата нет
https://yadi.sk/i/yJBb-1ej3GKjwb
появляется окно с каким то набором символов((
я так понимаю это обращение на рукапчю XMLHttpRequest();
а это
if (res.status == 1) {
checkSolution(res.request, ruCaptchaKey);
если капча разгадана отправляет на сайт с капчей
тока теперь не как не дойдет как это можно все через макрос в ответ запехнуть чтобы кнопка далее заработала?
Алексей, добрый вечер!
Похоже это вы писали мне на почту через сайт, но указали свой неправильный адрес.
В-целом, если вы не перепутали примеры(просто обычно disabled у неактивной кнопки стоит, а вы написали наоборот) — то решение следующее:
// Добавляем атрибут disabled
window.document.querySelector('#idForwardButton').setAttribute('disabled', 'disabled');
window.document.querySelector('#idForwardButton').click();
// на всякий случай код для удаления атрибута disabled
window.document.querySelector('#idForwardButton').removeAttribute('disabled');
Если там нету дополнительных механизмов защиты, то должно сработать. Если это не помогло — нужно сайт смотреть.
Спасибо.
спасибо огромное попробую))
супер спазибо кнопка позеленела)))
я действительно ошибся дисайбл на нерабочей кнопке
Как быть, если на сайте нету формы подтверждение на которую необходимо нажать(строка 165)?
Планируете ли вы выпускать новые уроки по imacros и javascript?
Андрей, да, планирую!
Будет много интересного, также скоро начну добавлять статьи в раздел «Создаем свой ботнет».
Пока сильно занят другими делами, но скоро время появится на блог.
Nagibaka, Это радует! Хотел бы выразить вам благодарность за старания! На данный момент ваш блог является лучшим сосредоточением полезной информации касательно imacros + js.
Что то не работает, ошибку выдает в TypeError: Nagibaka is undefined, line 3 (Error code: -991), так и непонятно куда ключ от рекапчи точно вставлять, может подскажете новичку?
Добрый вечер, Сергей!
Ключ от рекапчи вставляйте вместо фразы «ruCaptcha API-key here…»
По поводу ошибки, сходу сложно сказать.
Вы весь код скопировали?
Версия imacros 8.9.7? Firefox 35?
Добрый вечер! Спасибо за ответ.
да Версия imacros 8.9.7? Firefox 35?
Вот в этой строчки ошибку показывает: var result = Nagibaka.fuckReCaptcha2(«ruCaptcha API-key here…»);
Ключ Я там вставил
Все разобрался большое спасибо)))
Подскажите пожалуйста почему скрипт зависает на таком моменте и может крутить здесь очень долго после чего заного перезагружает страницу и начинает заного?
for (var i = 0; i < linkList.length; i++) {
window.console.log('====' + (i + 1) + " Link ===="); // behavior
window.console.log("Link text: ", linkList[i].innerHTML);
window.console.log("Link title: ", linkList[i].getAttribute('title'));
window.console.log("Link href: ", linkList[i].getAttribute('href'));
}
Извиняюсь все четко работает большое спасибо!!! не с той темы взял))
Здраствуйте я все скопировал и 160 линее поставил свой ключ нажал воспроизвести в макросе выходить это
MacroSyntaxError: unknown command: VAR, line 1 (Error code: -910)
помогите чайнику )))
Даке, регистр команд важен.
Попробуйте «var» вместо «VAR».
Здравствуйте Подскажите пожалуйста в Контакте как нибудь этим скриптом можно капчю разгадывать?
Здравствуйте. Решил использовать Ваш скрипт, но не пойму как. Можете объяснить.
Вставлял в iMacros, но он не запускается.
Расскажите что и как сделать надо.
Уважаемый нагибака вставил ваш код в обработчик imacros но он не хочет заводится
unknown command: VAR, line 1 (Error code: 910)
в разном регистре писал, все в пустую
Подскажите что если нет галки а сразу окно с капчей?
gkey
не могу понять откуда эта переменная?
где она объявляется? строка 47
Очень классный сайт! Очень много полезного для себя нашел!
Подскажите, пожалуйста, что нужно поменять в коде, чтобы использовать при разгадывании рекапчи на CapMonster 2?
Заранее благодарю!
а если нету data-sitekey как быть в таком случае???
unknown command: VAR, line 1 (Error code: -910). Скажите, что не так! Пробовал и Firefox 38 и 30, толку нет, эта ошибка ((((((
попробуй убрать приставку вар в первой строке
Получилось решить проблему изменив расширение файла с «.iim» на «.js». Но косяк в том, что js-файлы нельзя зациклить в imacros. Что нужно добавить в код, чтобы он зациклился и стартовал каждые 70 секунд?
Привет
Подскажите, не могу определиться с айдишкой и классом в рекапче2, которая вылазит во фрейме!
перебрал не мало вариантов…
Привет
Подскажите, не могу определиться с айдишкой и классом в рекапче2, которая вылазит во фрейме!
перебрал не мало вариантов…
http://prntscr.com/g2erwu
Здравствуйте. Подскажите а возможно ли таким способом отправлять на капмонстр капчу ? Или можете подсказать какой-либо другой способ ?
Привет. Все время вылазит ошибка вот на эти строки
} catch (e) {
out = {
isSolved: false,
hasError: true,
errorText: e.name
};
Здравсте. ) Подскажи почему консоль браузера не воспринимает var переменные? То есть когда пишу:
var xhr = new XMLHttpRequestT();
\\ Пишет undefined
xhr = new XMLHttpRequestT();
\\ Все создается без проблем.
И еще вопросик, строка 128 получаем джейсон текст, парсим — получаем объект. Стр 130 вызываешь от объекта .request. Внимание вопрос!) Не нашел в нете точного значения request, где то написано что это nodejs , где-то написано что это метод , тогда почему нет скобок? Поясни пож.
Добрый день. Подскажите как реализовать разгадывание рекапчи Вашим способов в iframe окне (конкретно в вк.)
Заранее спасибо
иногда на 144 строчке выдает ошибку.
} catch (e) {
out = {
isSolved: false,
hasError: true,
errorText: e.name //144 строка
};
Подскажите, как загрузить картинку? Нужно будет передать её через xmlhttprequest.
Что делать если например FRAME F= любое значение принимает при каждой перезагрузки страницы? Как поставить постоянное значение?
зачем все эти мучения, если можно расширение готовое anticaptcha использовать?
Добрый вечер ! Судя по отсутствующим ответам от автора сайта к обращавшимся за последние 9 месяцев , следует ли что Nagibaka больше не поддерживает эту тему ? Очень много насущных вопросов прозвучало ,на которые не последовало ответов от автора , ошибка на 144 строке скрипта — errorText: e.name — похоже у многих скрипт на ней вылетает ,а также — «что нужно поменять в коде, чтобы использовать при разгадывании рекапчи2 на CapMonster 2 расположенного на удаленном сервере ?». Ждем не дождемся возвращения уважаемого многими автора под ником Nagibaka !)
Надеюсь всем ботоводам, когда нибудь вставят швабры в анусы
Не работает скрипт,вернее работает но не отправляет и не получает ответ!
Перестал разгадывать недавно, классный скрипт был, надеюсь обновите.
Отбой, рукапча просто взяла и сменила мне апи-кей втихаря.
Блин так и не попробывал(((
Спасибо за статью!
А, как-то можно подписаться на публикации новых статей, как выяснилось — последние 4 статьи я просто пропустил.
А внизу статей, только подписка на комменты
А можно просто вырезать эту проверку? Например некоторый сайт перед логином (просто ужас) просит ещё и капчу пройти. Так вот в исходном тексте просто убрать проверку, как-будто её и не было никогда? Либо если это не катит, то в самом гугловском скрипте что-нибудь поправить, что сайт где требуется проверка думал что всё нормально. Извиняюсь, за возможно глупые предположения. Спасибо!
если бы капча так легко обходилась, то какой бы в ней был смысл?! отключил js и все, крастота, ни какой капчи
Ну я как бы человек далёкий. Просто предположил что этот процесс запускает сайт на котором она размещена, я предположил что процесс этот можно убрать на этом же сайте, покопавшись в исходных кодах этого же сайта?
Все верно, изменив исходники сайта, которые доступны, по факту только админу сайта, вы тем самым совершите взлом сайта и в таком случае, вам будет уже все равно, есть там капча или ее нет
Нет, я хочу менять те исходники что загружаются в браузер. Менять их как мне кажется могу. Просто если на самом сайте вся эта капча вызывается кодом к которому имеет доступ администратор, тогда у меня никаких вопросов.
капча как пароль, ввел верную, прощел, нет — значит — нет
Слишком простой ответ. Вот к примеру вариант как её добавить http://cccp-blog.com/koding/kak-sdelat-kapchu-na-php
код под «Как сделать капчу на PHP — подготовка формы». Его ведь можно модифицировать, чтоб отменить действия по проверке? Там есть такой фрагмент:
Тут как я понял происходит «отсыл» на проверку. Тут ведь можно что-то изменить чтоб «Отправить» просто срабатывало без всякой капчи?
хттп://cccp-blog.com/koding/kak-sdelat-kapchu-na-php
тут описан способ добавить проверку. В как бы вызывается проверка? Разве нельзя тут что-то изменить?
Почему-то не добавляются фрагменты кода.
«»
В iMacros под Firefox отлично работает, спасибо! Подскажите, как использовать этот самый код в чистом виде без iMacros. Вставляю этот же код в Google Chrome расширение (создаю своё) и выдаёт ошибку при запуске:
file.js:117 Uncaught ReferenceError: Components is not defined
сама строка, где ошибка:
var XMLHttpRequest = Components.Constructor(«@mozilla.org/xmlextras/xmlhttprequest;1»);
Пробовал добавлять:
var { Cc, Cu, Ci, Cr, Cm, components } = require(‘chrome’);
и
var XMLHttpRequest = components.Constructor(
«@mozilla.org/xmlextras/xmlhttprequest;1»,
«nsIXMLHttpRequest»);
не помогает, всё равно ошибка.
Ещё один момент, как добавить паузу 5 сек на чистом JS вместо iMacros?
iimPlayCode(‘WAIT SECONDS=5’);
может так?
setTimeout(function(){ console.log(‘Waiting 5 sec…’); },5000);
А такой вопрос, если например в браузере отрубить политику безопасности,
которая блокирует доступ к iframe в котором сидит капча, то можно непосредственно оттуда вынуть
ответ, который приходит с ресурсов по решению капч?
Ведь если я правильно понимаю механику решения на Рукапче, то получив site key
от меня, они грузят капчу с этим сайт кей, решают ее и получают ответ, который по идее
зашит в этой странице? Или я не прав?
Здравствуйте,Nagibaka
Не подскажете, в Вашем блоге код для каптчи hCaptcha для отправки на сервис разгадывания есть?