@Ranout а чем не устраивает модуль CaptchaCustom выложенный на форуме? Он сделает за вас сам все, только потом нужно токен вписать ну или найти каллбэк функцию куда его добавить.
Чекер проксей на NodeJS работает меньше секунды. Где косяк?
-
Запускаю чекинг фрии проксей на ноде 18.
Вот какие npm пакеты стоят :
После запуска кубика NodeJS . кубик работает меньше секунды и в переменой [[SAVED_CONTENT_GOOD_PROXYS]] по итогу unefined. Ну не может же прокси чекер на 300 проксей отработать меньше секунды, значит он и не начинает проверять прокси) .
Хоть прокся чекеру скармливаю через список [[SAVED_CONTENT]] , хоть в виде списка прям в коде - эффект один , кубик работает меньше секунды! Даже ошибки ни какие в логе не выдаёт.
Проксей для примера здесь мало в коде отобразил, в по факту их более 300 шт.
Где косяк?Код чекера на NodeJS 18
const http = require('http'); const HttpProxyAgent = require('http-proxy-agent'); const axios = require('axios'); // const SAVED_CONTENT = [[SAVED_CONTENT]]; const SAVED_CONTENT = ["190.5.77.211:80","142.11.222.22:80","45.136.58.22:8888","72.170.220.17:8080","47.244.32.96:80"]; const testUrl = 'http://www.google.com'; // Replace with the URL you want to test const timeout = 1000; // Timeout for the proxy check in milliseconds const goodProxys = []; async function checkProxies(proxies) { const promises = proxies.map(proxy => { return new Promise(async resolve => { try { const response = await axios.get(testUrl, { proxy: { host: proxy.split(':')[0], port: parseInt(proxy.split(':')[1], 10) }, timeout: timeout }); if (response.status === 200) { // console.log(`Good proxy: ${proxy}`); goodProxys.push(proxy); } } catch (error) { // console.log(`Bad proxy: ${proxy}`); } resolve(); }); }); await Promise.all(promises); // console.log('\nAll proxies checked.'); // console.log('Good proxies:', goodProxys); [[SAVED_CONTENT_GOOD_PROXYS]] = goodProxys; } checkProxies(SAVED_CONTENT); -
Сделай свой npm пакет, напиши к нему небольшой тест, где проверяешь, что прокси действительно проверяются.
Что-то вроде:
const assert = require('assert'); const sinon = require('sinon'); const axios = require('axios'); const checkProxies = require('./your-file-name.js'); describe('checkProxies', () => { let axiosGetStub; beforeEach(() => { axiosGetStub = sinon.stub(axios, 'get'); }); afterEach(() => { axiosGetStub.restore(); }); it('should add good proxies to the goodProxys array', async () => { axiosGetStub.resolves({ status: 200 }); const proxies = ['1.2.3.4:80', '5.6.7.8:8080', '9.10.11.12:8888']; const goodProxys = []; await checkProxies(proxies, goodProxys); assert.deepStrictEqual(goodProxys, proxies); }); it('should not add bad proxies to the goodProxys array', async () => { axiosGetStub.rejects(new Error('Connection error')); const proxies = ['1.2.3.4:80', '5.6.7.8:8080', '9.10.11.12:8888']; const goodProxys = []; await checkProxies(proxies, goodProxys); assert.deepStrictEqual(goodProxys, []); }); });