@LemanRass09

Есть ли сервис proxy серверов для node.js?

Здравствуйте. У меня пару вопросов по поводу работы с прокси серверами на node.js.
Ниже я напишу пару своих предположений, пожалуйста поправьте меня если я не прав.

1. Я так понимаю что для node.js какой попало прокси сервер найденный в интернете - не подойдет. Я подозреваю что он должен быть специально подготовлен для работы с node.js источниками.

2. Судя по всему мне нужно будет поднять свой собственный прокси сервер который должен будет принимать ответы от других прокси серверов которым я отправляю запрос.

3. Схема работы с прокси серверам на node.js должна выглядеть приблизительно так: Создаю сервер для приема ответов с прокси серверов и прослушиваю конкретный порт. Отправляю запрос на прокси сервер указывая при этом айпи и порт прокси сервера который я в данный момент хочу использовать, айпи и порт своего сервера для получения ответа и каким то образом поместить свой собственный запрос который должен быть выполнен на прокси сервере и результат которого должен быть возвращает прокси сервером на мой собственный.

4. Не могли бы вы показать пример того как можно заставить прокси сервер допустим вернуть мне html конкретной страницы?

5. Не могли бы вы мне посоветовать пакет из npm репозитория для node.js учитывая мои потребности описанные в этих рассуждениях?

6. Не могли бы вы мне посоветовать сайт где можно получить бесплатный доступ или даже купить доступ к некому количеству прокси серверов которые подходят для работы через node.js? Интересует приличное количество серверов, к примеру 50.

Заранее спасибо за ваши ответы.
  • Вопрос задан
  • 1414 просмотров
Решения вопроса 1
@antonecma
Nodejs backender
Три первых пункта мимо, т.к. никаких специальных прокси для ноды не существует. Проски не зависимый от платформы на которой вы разрабаиываете.
4. https://github.com/request/request/blob/master/REA...
5. https://github.com/chill117/proxy-lists
6. Ничего не покупайте, посмотрите на пункт 5.

//Для начала установите модуль request
//npm i request --save
/**
 * make get request through proxy
 * @param {string} url -   uri of resource
 * @param {object[]} proxyList - array of proxies
 * @param {string} proxyType='http' - type of proxy
 * @param {function} cb - callback
 */
const testProxy = (url, proxyList, proxyType, cb) => {
    if(!(proxyList instanceof Array) && !(cb instanceof Function) && !url){
        throw new Error('testProxy() arguments not set');
    }
    proxyType = proxyType || 'http';

    const proxyIndex = parseInt(Math.random() * (proxyList.length - 1));
    const proxy = proxyList[proxyIndex];
    const proxyUrl = `${proxyType}://${proxy.ipAddress}:${proxy.port}`;
    
    const anyParam = {method : 'GET', proxy : proxyUrl, strictSSL: false};
    
    request(url, anyParam, (error, response, body) => {
        if(error){
            cb(error);
        } else {
            cb(null, response, body);
        }
    });
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы