UNPKG

auto-captcha-solver

Version:

Automatically detect and solve various captcha types in Playwright & Puppeteer with 2Captcha/CapMonster Cloud integration

52 lines 2.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProxyList = getProxyList; exports.getRandomProxy = getRandomProxy; const axios_1 = __importDefault(require("axios")); async function getProxyList(webshareApiKey) { try { // Step 1: Get the proxy_list_download_token const configResponse = await axios_1.default.get('https://proxy.webshare.io/api/v2/proxy/config/', { headers: { Authorization: `Token ${webshareApiKey}` } }); const downloadToken = configResponse.data.proxy_list_download_token; if (!downloadToken) { throw new Error('Failed to retrieve proxy_list_download_token.'); } // Step 2: Use the token to download the proxy list const proxyListUrl = `https://proxy.webshare.io/api/v2/proxy/list/download/${downloadToken}/-/any/username/direct/-/`; const proxyResponse = await axios_1.default.get(proxyListUrl); // Transform the proxy list into an array of objects const proxyList = proxyResponse.data .split('\n') .map((proxy) => { const [ip, port, username, password] = proxy.split(':'); return { address: ip, port, username, password: password?.trim() // Removes any \r or extra spaces }; }) .filter((proxy) => proxy.address); // Remove empty lines return proxyList; } catch (error) { console.error('Error fetching proxy list:', error.response ? error.response.data : error.message); return []; } } // Function to return a random proxy async function getRandomProxy(webshareApiKey) { const proxyList = await getProxyList(webshareApiKey); if (proxyList.length === 0) { console.error('No proxies available.'); return null; } const randomIndex = Math.floor(Math.random() * proxyList.length); return proxyList[randomIndex]; } //# sourceMappingURL=webshare-proxy.js.map