puppeteer-extra-plugin-capsolver-catchless
v1.1.7
Published
A puppeteer-extra plugin to interact/solve captcha with API. (With no catches)
Downloads
18
Maintainers
Readme
puppeteer-extra-plugin-capsolver-catchless
Manage to solve captcha challenges with AI (captcha service based).
Puppeteer browser context.
❗ An API key it's required. Get here.
🐞 This is a clone of puppeteer-extra-plugin-capsolver but I have removed the catches. I do not recommend you use this unless you know what you're doing - this was made for personal use.
⬇️ Install
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-capsolver-catchless
✋ Usage
Import and use within puppeteer-extra
.
const puppeteer = require('puppeteer-extra')
const CapSolverPlugin = require('puppeteer-extra-plugin-capsolver')({
apiKey: 'CAI-XXX ...',
verboseLevel: 1,
retry: true // hcaptchaclicker: by default will retry challenges
})
puppeteer.use(CapSolverPlugin)
🖱 HCaptcha (DOM feature)
await page.hcaptchaclicker(checkboxFrame=undefined)
- handle a page including hcaptcha checkbox iframe example script (how to use).Will detect for failed callenges (and retry) and for double challenges that sometimes appears.
Catch
.hcaptchaclicker()
exceptions for unsupported challenges.Read more about recognize captcha images through HCaptcha Image Classification.
// get custom hcatpcha checkbox iframe
const desiredCheckboxFrame = await page.$("iframe[src*='custom-link-for-iframe-selector']")
await page.hcaptchaclicker(desiredCheckboxFrame) // pass no frame for detect the first on the page
.then(async (page) => {
// submit if passed the challenge
await page.click('#submit-my-form')
await page.waitForNavigation()
}).catch((e) => {
// ! catch clicker exception
console.log(e)
})
📖 Handler / Solving Tasks API Wrapper
Based on capsolver-npm (nodejs api wrapper for capsolver.com api).
Handler it's attached to any puppeteer page.
Use the handler with:
await page.capsolver()
- Perform any task that
capsolver-npm
brings. - Supported captcha tasks listed on capsolver-npm at capsolver-npm#Supported API methods.
example: retrieve handler and call for funcaptcha token.
await page.capsolver()
.funcaptchaproxyless(websiteURL, websitePublicKey, funcaptchaApiJSSubdomain) // see required parametes by https://github.com/0qwertyy/capsolver-npm#-supported-captcha-tasks
.then((results) => {
if (results.error !== 0) {
// createTask solution
const token = results.solution
} else {
console.log(`got an error! ${JSON.stringify(results.apiResponse)}`)
}
}).catch(e => {
console.log(e)
})
- Note that
await page.capsolver().runAynTask()
it's also supported in the case of tasks that are not supported by task-bind methods. see: examples/run-any-task-example.js
📁 Working Examples
figure out at examples directory