Задать вопрос
@kyzinatra

Как проксировать исходящий запрос на Nodejs?

Мне нужно менять ip который я посылаю при запросе на сайт через
библиотеку request (node.js)
Сейчас запрос выглядит так.
const request = require("request");
request ({
		url: "https://2ip.ru/",
		headers: {
			"User-Agent":
				"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4083.112 Safari/535.36",
		},
	}, (err, res, body) => {
	console.log(res.statusCode);
	if (err) reject(err);
	resolve(cheerio.load(body, { decodeEntities: false }));
});


Я пробовал проксировать через tunnel:
const request = require("request");
const tunnel = require("tunnel");
const tunnelingAgent = tunnel.httpsOverHttp({
	proxy: {
		host: "203.150.180.225",
		port: 3128,
	},
});
request (
	{
		url: "https://2ip.ru/",
		headers: {
			agent: tunnelingAgent,
			"User-Agent":
				"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4083.112 Safari/535.36",
		},
	},
	(err, res, body) => {
		console.log(res.statusCode);
		if (err) reject(err);
		resolve(cheerio.load(body, { decodeEntities: false }));
	}
);


Но видимо я делаю что-то не так. т.к. Я так и не достиг нужного результата
  • Вопрос задан
  • 192 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
https://nodejs.org/api/http.html#http_http_request...

agent должен быть в options, а не в headers

request({
  agent: tunnelingAgent,
  url: "https://2ip.ru/",
  headers: { ... }
}, callback);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
у request есть параметр "proxy"
и большой раздел в доках
https://github.com/request/request#proxies
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы