İçeriğe geç
Guides 4 dk okuma 1368 görüntülenme

Node.js'te Proxy Kullanımı

Axios, Puppeteer ve Playwright için Node.js proxy kullanımını keşfedin. Güvenli GProxy entegrasyonuyla web scraping ve otomasyonu güçlendirin.

Node.js'te Proxy Kullanımı

HTTP proxy, Node.js uygulamanız ile hedef sunucu arasında yer alan ve istekleri ile yanıtları ileten aracı bir sunucudur. Node.js'te axios, Puppeteer ve Playwright gibi kütüphanelerle proxy kullanmak; IP adresinizi gizlemenizi, coğrafi kısıtlamaları aşmanızı, istekleri yük dengelemenizi ve web scraping işlerini daha etkili yürütmenizi sağlar. Bu makale, bu kütüphaneleri proxy kullanacak şekilde yapılandırmaya dair pratik örnekler sunar.

Axios ile proxy yapılandırma

Axios, Node.js için yaygın kullanılan promise tabanlı bir HTTP istemcisidir. Axios'ta proxy yapılandırmak, proxy yapılandırma seçeneğiyle oldukça basittir.

Temel proxy yapılandırması

proxy seçeneği; host, port, username ve password gibi özellikleri olan bir nesne alır.

const axios = require('axios');

async function fetchData() {
  try {
    const response = await axios.get('https://api.example.com/data', {
      proxy: {
        host: 'your_proxy_host',
        port: 8080,
        username: 'your_username', // İsteğe bağlı
        password: 'your_password'  // İsteğe bağlı
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

fetchData();

your_proxy_host ve 8080 değerlerini kendi proxy host ve port bilgilerinizle değiştirin. Proxy'niz kimlik doğrulama gerektiriyorsa username ve password alanlarını doldurun.

Ortam değişkenlerini kullanma

Güvenlik ve sürdürülebilirlik açısından proxy kimlik bilgilerini ortam değişkenlerinde saklamak en iyisidir.

const axios = require('axios');

async function fetchData() {
  try {
    const proxyHost = process.env.PROXY_HOST;
    const proxyPort = process.env.PROXY_PORT;
    const proxyUsername = process.env.PROXY_USERNAME;
    const proxyPassword = process.env.PROXY_PASSWORD;

    const response = await axios.get('https://api.example.com/data', {
      proxy: {
        host: proxyHost,
        port: parseInt(proxyPort), // Portun tam sayı olduğundan emin ol
        username: proxyUsername,
        password: proxyPassword
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

fetchData();

Betiği çalıştırmadan önce ortam değişkenlerini ayarladığınızdan emin olun. Örneğin terminalinizde:

export PROXY_HOST=your_proxy_host
export PROXY_PORT=8080
export PROXY_USERNAME=your_username
export PROXY_PASSWORD=your_password
node your_script.js

HTTPS proxy'leriyle çalışma

HTTPS proxy'leri için proxy'nizin CONNECT yöntemini desteklediğinden emin olun. Axios, HTTPS proxy'lerini aynı yapılandırmayla sorunsuz şekilde ele alır.

Puppeteer ile proxy yapılandırma

Puppeteer, headless Chrome veya Chromium'u kontrol etmek için üst düzey bir API sunan bir Node.js kütüphanesidir. IP banlarından kaçınmanız veya coğrafi kısıtlı içeriğe erişmeniz gereken web scraping ve otomasyon işlerinde Puppeteer ile proxy kullanmak kritik önemdedir.

Puppeteer'ı proxy ile başlatma

Puppeteer'ı başlatırken --proxy-server başlatma argümanını kullanarak bir proxy yapılandırabilirsiniz.

const puppeteer = require('puppeteer');

async function scrapeWebsite() {
  const browser = await puppeteer.launch({
    args: [
      `--proxy-server=http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`
    ]
  });

  const page = await browser.newPage();
  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

process.env.PROXY_HOST ve process.env.PROXY_PORT değerlerini kendi proxy host ve port bilgilerinizle değiştirin. Bu örneğin bir HTTP proxy varsaydığını unutmayın; HTTPS proxy'leri için --proxy-server argümanında https:// kullanın.

Puppeteer ile kimlik doğrulamalı proxy'ler

Puppeteer, başlatma argümanları üzerinden kullanıcı adı ve parola ile kimlik doğrulamayı doğrudan desteklemez. Kimlik doğrulamayı sayfa bağlamında yapmanız gerekir.

const puppeteer = require('puppeteer');

async function scrapeWebsite() {
  const browser = await puppeteer.launch({
    args: [
      `--proxy-server=http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`
    ]
  });

  const page = await browser.newPage();

  // page.authenticate ile proxy'de kimlik doğrula
  await page.authenticate({
    username: process.env.PROXY_USERNAME,
    password: process.env.PROXY_PASSWORD,
  });

  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

page.authenticate() yöntemi, gerekli kimlik bilgilerini proxy sunucusuna iletir. Bu yöntem, hedef sayfaya gitmeden önce çağrılmalıdır.

İstek başına proxy hakkında notlar

Puppeteer, proxy ayarını tüm tarayıcı örneği için global olarak uygular. Farklı istekler için farklı proxy'ler gerekiyorsa, her biri farklı bir proxy ile yapılandırılmış birden fazla tarayıcı örneği başlatmanız gerekir. Alternatif olarak, istekleri yakalayıp proxy ayarlarını istek bazında uygulayan bir kütüphane kullanmayı değerlendirebilirsiniz (daha az yaygın, daha karmaşık).

Playwright ile proxy yapılandırma

Playwright, tarayıcı otomasyonu ve uçtan uca test için güçlü bir başka Node.js kütüphanesidir. Puppeteer gibi o da tarayıcı örnekleri için proxy yapılandırmayı destekler.

Playwright'ı proxy ile başlatma

Playwright, launch seçeneklerindeki proxy özelliğini kullanarak Puppeteer'a kıyasla daha doğrudan bir proxy yapılandırma yolu sunar.

const { chromium } = require('playwright');

async function scrapeWebsite() {
  const browser = await chromium.launch({
    proxy: {
      server: `http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`,
      username: process.env.PROXY_USERNAME,
      password: process.env.PROXY_PASSWORD,
    }
  });

  const page = await browser.newPage();
  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

Bu yaklaşım daha temiz ve açıktır; çünkü kullanıcı adı ve parola ile kimlik doğrulamayı doğrudan proxy yapılandırmasının içinde destekler.

Bağlam başına proxy

Playwright, tek bir tarayıcı örneği içinde izole gezinme oturumlarına imkân veren tarayıcı bağlamlarını (context) destekler. Her bağlamın kendi proxy yapılandırması olabilir. Bu, her biri farklı bir proxy kullanan paralel görevleri çalıştırmak için kullanışlıdır.

const { chromium } = require('playwright');

async function scrapeWebsite() {
  const browser = await chromium.launch();

  const context = await browser.newContext({
      proxy: {
        server: `http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`,
        username: process.env.PROXY_USERNAME,
        password: process.env.PROXY_PASSWORD,
      }
  });

  const page = await context.newPage();
  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

Karşılaştırma tablosu: proxy yapılandırması

Özellik Axios Puppeteer Playwright
Yapılandırma İstek yapılandırmasında proxy seçeneği --proxy-server başlatma argümanı, page.authenticate() launch veya newContext içinde proxy seçeneği
Kimlik doğrulama proxy içinde username ve password page.authenticate() proxy içinde username ve password
HTTPS desteği Evet, HTTP ile aynı yapılandırma Evet, --proxy-server içinde https:// kullanın Evet, HTTP ile aynı yapılandırma
İstek başına proxy Hayır, Axios örneği için global Hayır, tarayıcı örneği için global Evet, tarayıcı bağlamlarıyla

En iyi uygulamalar

  • Ortam değişkenleri kullanın: Proxy kimlik bilgilerini kodun içine gömmemek için ortam değişkenlerinde saklayın.
  • Hataları ele alın: Proxy bağlantı sorunlarını düzgün yönetmek için hata yakalama uygulayın.
  • Proxy rotasyonu yapın: Web scraping'de IP banlarından kaçınmak için proxy'leri sık sık değiştirin. Bir proxy havuzu kullanmayı değerlendirin.
  • Kurulumunuzu test edin: Proxy üzerinden IP adresinizi kontrol ederek proxy'nin doğru çalıştığını doğrulayın. whatismyipaddress.com gibi siteleri kullanabilirsiniz.
  • Güvenli proxy'ler kullanın: Trafiğinizi şifrelemek için güvenli proxy'ler (HTTPS veya SOCKS5) tercih edin.
  • Hukuki hususlar: Web scraping faaliyetlerinizin hedef sitenin hizmet şartlarına ve geçerli tüm yasalara uygun olduğundan emin olun.

Sonuç

Node.js'te axios, Puppeteer ve Playwright gibi kütüphanelerle proxy yapılandırmak; web scraping, coğrafi kısıtlamaları aşma ve gizliliği artırma gibi çeşitli işler için gereklidir. Her kütüphane proxy yapılandırmasına farklı yaklaşır; özellikle kimlik doğrulamalı proxy'ler ve bağlam başına yapılandırmalar söz konusu olduğunda en esnek ve doğrudan yöntemi Playwright sunar. Bu makaledeki en iyi uygulamaları izleyerek Node.js uygulamalarınızda proxy'leri etkili biçimde kullanabilirsiniz.

Güncellendi: 26.01.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.