В этом руководстве по прокси SuperAgent будут рассмотрены следующие темы:
- Что такое SuperAgent и зачем нужны прокси.
- Что такое библиотека superagent-proxy и почему она необходима.
- Как установить HTTP, HTTPS или SOCKS прокси в SuperAgent.
- Как работать с аутентификацией прокси и ротацией IP-адресов.
Что такое SuperAgent и зачем нужен прокси?
SuperAgent – это легкий и простой в использовании HTTP-клиент для JavaScript-приложений. Благодаря своей гибкости он является популярной библиотекой для выполнения HTTP-запросов во фронтенде и Node.js-приложениях. Он предлагает множество функций, таких как пользовательские заголовки, конфигурации и cookies.
Почему вам нужен прокси SuperAgent? Потому что он позволяет вам защитить свою личность в Интернете и достичь своих целей анонимно. Передавая свои запросы через прокси сервер, вы можете скрыть свой IP-адрес, что затрудняет идентификацию и блокировку целевого сервера. Этот дополнительный уровень конфиденциальности помогает избежать IP-запретов или ограничений.
Обратите внимание, что вы можете добиться того же результата с помощью Node Fetch, как описано в нашем руководстве по прокси node-fetch, и Axios, как описано в нашем руководстве по прокси Axios.
Что такое superagent-proxy?
SuperAgent не поддерживает прокси нативно. Учитывая, насколько важна поддержка прокси, сообщество исправило это с помощью superagent-proxy
. Этот пакет npm расширяет класс superagent Request функцией proxy(uri) для установки HTTP, HTTPS или SOCKS прокси. Другими словами, superagent-proxy позволяет проксировать HTTP-запросы через указанный прокси.
За кулисами библиотека опирается на проект Proxy Agents, который предлагает реализацию http.Agent
для установки прокси в различных протоколах.
Настройка прокси в SuperAgent с помощью superagent-proxy
В этом пошаговом разделе вы узнаете, как установить HTTP, HTTPS или SOCKS-прокси в SuperAgent.
Предварительные условия
Предположим, у вас есть проект Node.js. Сначала добавьте пакеты superagent и superagent-proxy npm в зависимости вашего проекта:
npm install superagent superagent-proxy
В файле сценария Node.js импортируйте функцию superagent
и расширьте ее с помощью superagent-proxy
:
const superagent = require("superagent");
// extend the Request class from SuperAgent
// with the proxy() method
require("superagent-proxy")(superagent);
Или если вы являетесь пользователем ESM:
import superagent from "superagent";
import superagentProxy from "superagent-proxy";
// extend the Request class from SuperAgent
// with the proxy() method
superagentProxy(superagent);
Отлично! Вы готовы следовать руководству по прокси SuperAgent!
HTTP, HTTPS, SOCKS прокси
Это синтаксис URL-адреса HTTP/HTTPS/SOCKS-прокси:
[<PROXY_PROTOCOL>://]<PROXY_HOST>:<PROXY_PORT>
В частности, параметры:
<PROXY_PROTOCOL>
: “http” для HTTP-прокси, “https” для HTTPS-прокси, и “socks”, “socks4”, “socks5” для прокси в различных протоколах SOCKS. Если этот параметр опущен, то по умолчанию обычно используется значение “http”.<PROXY_HOST>
: IP-адрес прокси-сервера или его домен.<PROXY_PORT>
: Порт, к которому прислушивается прокси-сервер.
Например, предположим, что это URL вашего HTTP-прокси:
"http://207.2.120.19:88"
Вы можете использовать прокси в SuperAgent следующим образом:
try {
const proxyURL = "http://207.2.120.19:88";
const response = await superagent
.get("https://example.com")
.proxy(proxyURL);
// retrieve the JSON response from the request
// and print it
const jsonResponse = JSON.stringify(response.body);
console.log(jsonResponse);
} catch (e) {
console.error(e);
}
Or if you prefer a Promise-based approach:
const proxyURL = "http://207.2.120.19:88";
superagent
.get("https://example.com")
.proxy(proxyURL)
.end((err, res) => {
if (err) {
console.log(err);
} else {
const jsonResponse = JSON.stringify(res.body);
console.log(jsonResponse);
}
});
Как видите, все, что вам нужно сделать, это передать URL прокси-сервера в метод proxy(), предоставляемый superagent-proxy
. Теперь SuperAgent выполнит запрос к URL, переданному в качестве параметра в get()
, через HTTP-прокси-сервер, указанный в proxyURL.
Давайте проверим, как работает описанный выше подход к прокси SuperAgent на конкретном примере!
Исчерпывающий пример
Если у вас нет URL-адреса прокси-сервера, вы можете получить его в Интернете. Рассмотрим этот вариант:
http://198.199.70.20:31028
Это HTTP-прокси, но имейте в виду, что пример, который вы сейчас увидите, также работает с HTTPS или прокси SOCKS.
Чтобы проверить, что SuperAgent направляет запросы через указанный прокси, мы обратимся к конечной точке /ip из проекта HTTPBin. Этот публичный API возвращает IP входящего запроса. Таким образом, если все работает как надо, HTTPBin API должен ответить IP прокси-сервера.
Вот как выглядит полный фрагмент JavaScript:
const superagent = require("superagent");
require("superagent-proxy")(superagent);
async function makeProxyRequest() {
try {
const proxyURL = "http://198.199.70.20:31028";
const response = await superagent
.get("https://httpbin.io/ip")
.proxy(proxyURL);
const jsonResponse = JSON.stringify(response.body);
console.log(jsonResponse);
} catch (e) {
console.error(e);
}
}
makeProxyRequest();
Выполните сценарий, и он должен напечататься:
{ "origin": "198.199.70.20" }
Фантастика! Это IP прокси-сервера, а значит, подход работает как надо!
Обратите внимание, что формулировка была намеренной. “Должен напечататься”, а не “напечатается”, потому что срок жизни бесплатных прокси настолько короток, что к тому времени, когда вы будете читать эту статью, выбранный прокси уже не будет работать.
Использование бесплатных прокси, найденных в Интернете, вполне подходит для учебных целей, но в реальных условиях доверять им нельзя. Почему? Потому что бесплатные прокси-сервисы медленные, подвержены ошибкам, ненадежные, требовательные к данным и недолговечные. Сделайте свою жизнь проще и избегайте их!
Как решить эту проблему? С помощью премиальных прокси, предоставляемых Bright Data, лучшим прокси-провайдером на рынке. Создайте аккаунт и попробуйте наши надежные прокси бесплатно!
SuperAgent Proxy: Расширенные примеры использования
Вы знаете основы интеграции прокси SuperAgent, но что делать с более сложными техниками? Следуйте приведенным ниже главам и станьте экспертом в области superagent-proxy.
Настройка прокси глобально через переменные среды?
SuperAgent не поддерживает глобальные конфигурации, но не забывайте, что superagent-proxy использует proxy-agent непосредственно под оболочкой. Пакет proxy-agent определяет, какой прокси использовать, двумя способами:
- Он использует URL, переданный в качестве параметра.
- Он считывает переменные окружения HTTP_PROXY и HTTPS_PROXY, как определено в модуле
proxy-from-env
.
Поэтому вы можете настроить прокси глобально в SuperAgent, задав следующие переменные окружения:
HTTP_PROXY
: URL-адрес прокси-сервера, который будет использоваться для HTTP-запросов.HTTPS_PROXY:
URL-адрес прокси-сервера для HTTPS-запросов.
Например, в Linux или macOS их можно задать следующими командами:
export HTTP_PROXY="[<PROTOCOL>://]<USERNAME>:<PASSWORD>@<HOST>[:<PORT>]"
export HTTPS_PROXY="[<PROTOCOL>://]<USERNAME>:<PASSWORD>@<HOST>[:<PORT>]"
Затем вызовите метод proxy()
без параметров:
superagent
.get("https://example.com")
.proxy()
// ...
Отлично! SuperAgent будет использовать прокси, указанные в переменных окружения, для каждого запроса.
Перейдите по ссылке, чтобы узнать больше, поскольку этот же механизм работает и с прокси в cURL.
Аутентификация через прокси в superagent-proxy
Прокси-провайдеры защищают свои серверы с помощью аутентификации. Таким образом, только пользователи с действительной парой учетных данных смогут получить доступ к их прокси-серверам. Попытка подключиться к аутентифицированному прокси без имени пользователя и пароля приведет к ошибке 407 Proxy Authentication Required HTTP.
Это синтаксис URL-адреса аутентифицированного прокси:
[<PROTOCOL>://]<USERNAME>:<PASSWORD>@<HOST>[:<PORT>]
Он похож на URL-адрес обычного прокси, но в нем также присутствуют <USERNAME>
и <PASSWORD>
.
Чтобы лучше понять, как работает этот механизм, рассмотрим пример. Предположим, что строка ниже – это URL для подключения к аутентифицированному прокси:
http://admin:[email protected]:8080
Поля URL будут такими:
<PROTOCOL>
: http<USERNAME>
: admin<PASSWORD>
: pK5io86NWp56l9sju7<HOST>
: 20.210.113.32<PORT>
: 8080
Учитывая это, есть два способа работы с аутентификацией через прокси в SuperAgent:
- Указывать учетные данные непосредственно в URL прокси:
const proxyURL = "http://admin:[email protected]:8080"
superagent
.get("https://example.com")
.proxy(proxyURL)
// ...
- Задать атрибуты имени пользователя и пароля в url-parse-подобном объекте:
superagent
.get("https://httpbin.io/ip")
.proxy({
protocol: "http",
host: "20.210.113.322",
port: "8080",
username: "admin",
password: "pK5io86NWp56l9sju7"
})
Потрясающе! Аутентификация через прокси в SuperAgent больше не является секретом.
Ротационные прокси в SuperAgent
Если вы будете использовать один и тот же прокси-сервер раз за разом, есть риск, что целевой сайт заблокирует его IP-адрес. Чтобы избежать этой проблемы, важно убедиться, что каждый запрос поступает с отдельного прокси-сервера. Вот как это можно сделать:
- Составьте список URL-адресов прокси.
- Случайно выберите URL прокси перед каждым запросом.
- Настройте выбранный URL прокси в SuperAgent.
Однако управлять этой логикой перед каждым HTTP-запросом очень утомительно. Кроме того, для этого требуется доступ к пулу надежных прокси-серверов, что связано с определенными затратами. К счастью, Bright Data предлагает решение! Ротационные прокси компании автоматически меняют IP-адреса выхода при каждом запросе! Эти прокси обеспечивают свежие IP-адреса при каждом подключении, доступны в 195 странах, могут обеспечить высокую работоспособность сети и гарантируют успех на уровне 99,9 %.
В следующей главе вы узнаете, как начать работу с ротационными прокси Bright Data в SuperAgent.
Интеграция SuperAgent с прокси Bright Data
Bright Data управляет лучшими прокси-серверами в мире, обслуживая компании из списка Fortune 500 и более 20,000 клиентов. Ее всемирная сеть прокси-серверов включает в себя:
- Прокси для дата-центров – Более 770 000 IP-адресов дата-центров.
- Резидентные прокси – Более 72 миллионов резидентных IP-адресов в более чем 195 странах.
- ISP прокси – Более 700 000 ISP IP-адресов
- Мобильные прокси – более 7 миллионов мобильных IP-адресов.
В целом, это одна из самых крупных и надежных прокси-сетей. Теперь давайте посмотрим, как интегрировать прокси Bright Data в SuperAgent.
Если у вас уже есть учетная запись, войдите в Bright Data. В обратном случае создайте учетную запись бесплатно. Вы получите доступ к следующей пользовательской панели:
Нажмите кнопку “Просмотр прокси-продуктов”:
Вы получите доступ к странице “Прокси и инфраструктура скрапинга”:
Прокрутите страницу вниз, найдите карточку “Прокси для дата-центров” и нажмите на кнопку “Начать”:
Вы попадете на панель настройки прокси-сервера центра обработки данных. Дайте своему решению уникальное имя и настройте прокси-сервис в соответствии с вашими потребностями. Если у вас возникнут сомнения по поводу настройки прокси, обращайтесь в круглосуточную службу поддержки. Затем нажмите “Добавить”.
Наконец, вы получите доступ к имени хоста, порту, имени пользователя и паролю вашего прокси, как показано ниже:
Обратите внимание, что в поле “Host” уже указан порт.
Это все, что вам нужно для создания URL прокси и его использования в SuperAgent. Соберите всю информацию вместе и создайте URL со следующим синтаксисом:
<Username>:<Password>@<Host>
Например, в данном случае это будет:
brd-customer-hl_YYYYYYY-zone-datacenter_proxy1:@ZZZZZZZZZZbrd.superproxy.io:XXXX
Ваш фрагмент прокси SuperAgent для интеграции с Bright Data будет выглядеть следующим образом:
const superagent = require("superagent");
require("superagent-proxy")(superagent);
async function makeBrightDataProxyRequest() {
try {
const proxyURL = "brd-customer-hl_YYYYYYY-zone-datacenter_proxy1:@ZZZZZZZZZZbrd.superproxy.io:XXXX";
const response = await superagent
.get("https://lumtest.com/myip.json")
.proxy(proxyURL);
const jsonResponse = JSON.stringify(response.body);
console.log(jsonResponse);
} catch (e) {
console.error(e);
}
}
makeBrightDataProxyRequest();
Заключение
В этом руководстве по прокси SuperAgent вы узнали, почему нужно использовать прокси и как это сделать с помощью superagent-proxy. Теперь вы знаете, как настроить прокси HTTP, HTTPS или SOCKS в SuperAgent, мощной клиентской библиотеке HTTP на JavaScript. Как было показано здесь, это занимает всего пару строк кода!
Благодаря этому руководству вы также поняли, почему не стоит пользоваться бесплатными прокси-сервисами, а предпочесть надежные прокси-серверы от лучшего провайдера на рынке – Bright Data. Процедура интеграции в SuperAgent такая же, но преимущества премиальных прокси безграничны!
Кредитная карта не требуется