Intégration

Utilisez Shifter avec Node.js

Intégrez les proxies résidentiels et ISP de Shifter dans n'importe quel projet Node.js en quelques minutes. Fonctionne parfaitement avec axios, le fetch natif (Node 18+), got, undici, Puppeteer et Playwright.

Démarrage rapide

Installer

npm install axios https-proxy-agent

Utilisation de base

import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

const proxyUrl =
  "customer-USERNAME-country-us-sid-123ABC:PASSWORD@p.shifter.io:443";
const agent = new HttpsProxyAgent(proxyUrl);

const { data } = await axios.get("https://ipinfo.io/json", {
  httpsAgent: agent,
  proxy: false,
});

console.log(data);
// { ip: "154.16.xxx.xxx", city: "New York", country: "US", ... }

Fonctionnalités

Prise en charge immédiate pour axios, fetch natif, got, undici, node-fetch et tout client HTTP acceptant une URL de proxy ou un agent
Rotation par requête par défaut, avec `sid` pour les sessions persistantes et `ttl-N` pour des épinglages temporisés de N secondes
Prise en charge des navigateurs sans interface via Puppeteer et Playwright avec une configuration de proxy en une ligne
Protocoles HTTP, HTTPS et SOCKS5 sur le même point d'accès passerelle
Géociblage dans 195+ pays via des paramètres de nom d'utilisateur — aucun SDK supplémentaire requis
Compatible avec TypeScript, ESM, CommonJS et toutes les versions LTS de Node.js à partir de la version 14

Exemples

axios + Session Persistante Géociblée

Épinglez une IP résidentielle pour toute une session utilisateur en ajoutant un `sid` au nom d'utilisateur. Ajoutez `country-uk`, `city-london` ou `asn-7922` pour un ciblage géographique.

import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
import { randomBytes } from "node:crypto";

const sid = randomBytes(4).toString("hex");

const proxyUrl =
  `customer-USERNAME-country-uk-city-london-sid-${sid}-ttl-300:` +
  `PASSWORD@p.shifter.io:443`;

const client = axios.create({
  httpsAgent: new HttpsProxyAgent(proxyUrl),
  proxy: false,
  timeout: 30_000,
  headers: {
    "User-Agent":
      "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
  },
});

const login = await client.post("https://example.com/login", {
  email: "user@example.com",
  password: "secret",
});

const dashboard = await client.get("https://example.com/dashboard");
const orders = await client.get("https://example.com/orders");

console.log(login.status, dashboard.status, orders.status);

Fetch natif (Node 18+) avec undici

Si vous utilisez Node 18 ou une version plus récente, vous n'avez pas besoin d'axios — utilisez le fetch global avec un ProxyAgent undici. L'empreinte la plus légère possible.

import { ProxyAgent, setGlobalDispatcher } from "undici";

const proxyAgent = new ProxyAgent({
  uri: "http://p.shifter.io:443",
  token: `Basic ${Buffer.from(
    "customer-USERNAME-country-us-sid-456DEF:PASSWORD",
  ).toString("base64")}`,
});

setGlobalDispatcher(proxyAgent);

const r = await fetch("https://api.example.com/products?page=1");
const json = await r.json();

console.log(json);

Puppeteer avec Proxy Authentifié

Faites transiter Chromium par Shifter et authentifiez-vous via page.authenticate(). Combinez `sid` avec les cookies au niveau du navigateur pour maintenir une session stable pendant toute l'exploration.

import puppeteer from "puppeteer";

const PROXY_HOST = "p.shifter.io";
const PROXY_PORT = 443;
const PROXY_USER = "customer-USERNAME-country-de-sid-789GHI";
const PROXY_PASS = "PASSWORD";

const browser = await puppeteer.launch({
  args: [`--proxy-server=http://${PROXY_HOST}:${PROXY_PORT}`],
  headless: "new",
});

const page = await browser.newPage();
await page.authenticate({ username: PROXY_USER, password: PROXY_PASS });

await page.setUserAgent(
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
);

await page.goto("https://example.com", { waitUntil: "networkidle0" });

const title = await page.title();
const html = await page.content();

console.log(title, html.length, "bytes");

await browser.close();

Playwright (multi-navigateur)

Les options de lancement de Playwright acceptent les proxies nativement, avec les identifiants intégrés. La même configuration fonctionne pour Chromium, Firefox et WebKit.

import { chromium } from "playwright";

const browser = await chromium.launch({
  proxy: {
    server: "http://p.shifter.io:443",
    username: "customer-USERNAME-country-fr-city-paris-sid-ABC123",
    password: "PASSWORD",
  },
});

const context = await browser.newContext({
  userAgent:
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
});

const page = await context.newPage();
await page.goto("https://example.com");

const headlines = await page.locator(".headline").allTextContents();

console.log(headlines);

await browser.close();
FAQ

Questions fréquentes Questions FAQ

Questions fréquentes sur l'utilisation de Shifter avec Node.js.

Passez un https-proxy-agent (ou http-proxy-agent pour du HTTP simple) dans l'option httpsAgent, et définissez proxy: false pour qu'axios utilise l'agent directement. Le format de l'URL du proxy est `http://USER:PASS@p.shifter.io:443`. La même instance axios peut ensuite être réutilisée pour plusieurs requêtes.

Commencer

Commencer à utiliser Shifter avec Node.js

Ajoutez les 205M+ proxies résidentiels et ISP de Shifter à votre stack Node.js en moins de 5 minutes. Rotation par requête, sessions persistantes et prise en charge complète de Puppeteer / Playwright.

Essayez Shifter gratuitementConfiguration en quelques minutes. Annulez à tout moment.