UNPKG

scrapper-tools

Version:

Its in development but I use it in all my web automation project.

83 lines 3.7 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const delay_1 = __importDefault(require("delay")); const consoleMessage_1 = __importDefault(require("./consoleMessage")); const waitForFrames_1 = __importDefault(require("./waitForFrames")); function getCaptchaFrame(page) { return __awaiter(this, void 0, void 0, function* () { return yield waitForFrames_1.default(page, "https://www.google.com/recaptcha/api2/anchor"); }); } function getBusterCaptchaFrame(page) { return __awaiter(this, void 0, void 0, function* () { return yield waitForFrames_1.default(page, "https://www.google.com/recaptcha/api2/bframe"); }); } function solver(page) { return __awaiter(this, void 0, void 0, function* () { consoleMessage_1.default.success("Buster", "Clicking on captcha btn"); let captchaFrame = yield getCaptchaFrame(page); yield (yield captchaFrame.waitForSelector("#recaptcha-anchor > div.recaptcha-checkbox-border", { visible: true })).click(); consoleMessage_1.default.success("Buster", "Waiting for buster frames"); let bCaptchaFrame = yield getBusterCaptchaFrame(page); consoleMessage_1.default.success("Buster", "Clicking on buster solver icon"); while (true) { try { const recaptchaSolveButton = yield bCaptchaFrame.waitForSelector("#solver-button", { visible: true, timeout: 1000 }); yield recaptchaSolveButton.click(); } catch (e) { break; } } try { const recaptchaReload = yield bCaptchaFrame.waitForSelector("#reset-button", { visible: true, timeout: 500 }); yield recaptchaReload.click(); } catch (e) { } }); } function default_1(page) { return __awaiter(this, void 0, void 0, function* () { while (true) { console.log("ssss"); yield solver(page); console.log("get captcha frame"); try { let captchaFrame = yield getCaptchaFrame(page); let captchaClasses = yield captchaFrame.evaluate(() => { if (document.querySelector(".recaptcha-checkbox")) { return document.querySelector(".recaptcha-checkbox").className; } return false; }); if (captchaClasses.includes("recaptcha-checkbox-checked")) { break; } } catch (e) { } yield delay_1.default(1000); } consoleMessage_1.default.success("Buster", "Captcha should be solved"); }); } exports.default = default_1; //# sourceMappingURL=solveCaptchaByBuster.js.map