Wget’i Proxy ile Nasıl Kullanırsınız (ve Sık Yapılan Hatalardan Nasıl Kaçınırsınız)

Son güncelleme: June 1, 2026
Wget’i Proxy ile Nasıl Kullanırsınız (ve Sık Yapılan Hatalardan Nasıl Kaçınırsınız)
Yapay Zeka Özeti
CLI bayrakları, yapılandırma dosyaları veya ortam değişkenleriyle Wget’i proxy üzerinden yapılandırın. 2026 tarihli bu rehber; öncelik sırası, kimlik doğrulama ve kurumsal güvenlik duvarı çözümlerini ele alır.

Wget’te proxy kurulumu ilk bakışta beş dakikalık iş gibi durur — ta ki isteklerinizin hiçbir hata vermeden proxy’yi tamamen atladığını fark edene kadar. Bunu hem tecrübeli sistem yöneticilerinde hem de yeni başlayan geliştiricilerde defalarca gördüm.

Asıl mesele neredeyse hiç proxy’nin kendisi değildir. Sorun; Wget’in proxy ayarlarını okuyabildiği dört ayrı konum, yanlış değişken harfi yüzünden oluşan sessiz hatalar ve hiçbir kullanım kılavuzunun düzgün anlatmadığı kurumsal ağ ayrıntılarıdır. Bu rehber, Wget’i proxy ile yapılandırmanın tüm yollarını, birden fazla yöntem çakıştığında hangi öncelik kurallarının geçerli olduğunu, her yaygın hata için gerçek terminal çıktısını ve özellikle Windows ile kurumsal güvenlik duvarının arkasındaki kullanıcılar için ayrı bir bölümü kapsıyor — yani diğer neredeyse tüm yazıların göz ardı ettiği kitleyi.

  • Zorluk seviyesi: Başlangıç – Orta
  • Gerekli süre: Okuyup yapılandırmak için yaklaşık 15 dakika; ne yaptığınızı biliyorsanız yaklaşık 2 dakika
  • İhtiyacınız olacaklar: Çalışan bir Wget kurulumu (aşağıda anlatılıyor), bir proxy adresi (host + port) ve isteğe bağlı olarak proxy kimlik bilgileri

Yapılandırılmış Veri Çıkarmak için Thunderbit’i Deneyin

Wget Nedir ve Neden Proxy ile Kullanılır?

wget-through-proxy-diagram.webp

Wget, tarayıcı olmadan internetten dosya ve web sayfası indiren bir komut satırı aracıdır. GNU’nun kendi tanımı onu “etkileşimsiz bir ağ indiricisi” olarak tanımlar — yani arka planda çalışır, yarım kalan indirmeleri kaldığı yerden sürdürür ve bir insanın tıklamasına gerek kalmadan yinelemeli indirmeleri yönetir.

Bu bağlamda proxy, aracı bir sunucudur. Makineniz hedef siteye doğrudan bağlanmak yerine isteği proxy’ye gönderir; proxy de isteği ileri iletir. Bunu kullanmak istemenizin başlıca nedenleri şunlardır:

  • Kurumsal güvenlik duvarı uyumluluğu — şirketiniz tüm dış trafiğin onaylı bir proxy üzerinden geçmesini ister
  • Gizlilik ve IP yönetimi — istekler sizin IP’niz yerine proxy’nin IP’sinden görünür
  • Coğrafi test — bölge kilitli içeriklere erişmek veya CDN davranışını belirli bir konumdan test etmek
  • Veri toplama süreçleri — araştırma ya da izleme için dönen proxy’ler üzerinden HTML indirmek
  • CI/CD ortamları — internete yalnızca proxy ile çıkabilen kısıtlı ağlardaki build runner’lar

Wget yerleşik olarak HTTP, HTTPS ve FTP proxy’lerini destekler. Ancak SOCKS5 desteği yoktur. SOCKS5 gerekiyorsa, socks4://, socks5:// ve socks5h:// şemaları için yerleşik desteğe sahip olan curl kullanabilirsiniz — ya da Wget’i proxychains4 gibi bir araçla sarmalayabilirsiniz.

Linux, macOS ve Windows’ta Wget Nasıl Kurulur?

Proxy ayarına geçmeden önce makinenizde Wget kurulu olmalı. Bu bölüm kısa — ana konu değil, ön koşul.

Linux (Debian/Ubuntu ve RHEL/CentOS)

# Debian/Ubuntu
sudo apt update
sudo apt install wget

# RHEL/CentOS/Fedora
sudo dnf install wget

# Doğrula
wget --version

Ubuntu 24.04 LTS, Wget 1.21.4 ile gelir; Debian Trixie’de 1.25.0 vardır. CentOS Stream 10 paketlerinde 1.24.5 görünüyor.

macOS (Homebrew)

brew install wget
wget --version

Homebrew formülü şu anda kararlı Wget 1.25.0 sürümünü sunuyor ve son bir yılda 396.818 kurulum almış durumda.

Windows (Chocolatey ve Manuel Kurulum)

choco install wget
wget --version

Chocolatey’nin GNU Wget paketi toplamda 10 milyondan fazla indirme sayısına ulaşmış durumda; ancak şu an sürüm 1.21.4. İkili dosya genellikle C:\ProgramData\chocolatey\bin\wget.exe altında bulunur.

Windows kullanıcıları için önemli bir not: Wget’in .wgetrc dosyasını nerede aradığı derlemeye göre değişebilir. Ayrıntılar aşağıdaki Windows bölümünde.

Wget’i Proxy ile Kullanmanın 4 Yolu (ve Hangisini Seçmelisiniz)

Dört yöntem var; her birinin kapsamı ve önceliği farklıdır:

wgetrc-priority-bypass-proxy.webp

  1. Komut satırı -e bayrakları — tek seferlik, tek komutluk kullanım
  2. Kullanıcı yapılandırma dosyası (~/.wgetrc) — o kullanıcıyla çalıştırdığınız tüm Wget komutlarına uygulanır
  3. Sistem yapılandırma dosyası (/etc/wgetrc) — makinedeki tüm kullanıcılar için geçerlidir
  4. Ortam değişkenleri (http_proxy, https_proxy) — tüm kabuk oturumu boyunca geçerlidir

Yöntem 1: Komut Satırı Bayrakları (Tek Seferlik Proxy)

Hızlı denemeler için en uygunudur. Komut bittiğinde ayarlar da kaybolur.

wget -e use_proxy=on -e http_proxy=http://HOST:PORT/ http://example.com/file.zip

HTTPS hedefleri için:

wget -e use_proxy=on -e https_proxy=http://HOST:PORT/ https://example.com/

Hızlı bir kontrol testi — görünen IP’nizi proxy üzerinden çekin:

wget -qO- -e use_proxy=on -e http_proxy=http://HOST:PORT/ http://ifconfig.me

Çıktı sizin IP’niz yerine proxy’nin IP’sini gösteriyorsa, iş tamamdır.

Yöntem 2: Kullanıcı Yapılandırma Dosyası (~/.wgetrc)

Aşağıdaki satırları ~/.wgetrc dosyasına ekleyin (dosya yoksa oluşturun):

use_proxy = on
http_proxy = http://proxy.company.com:8080/
https_proxy = http://proxy.company.com:8080/
no_proxy = localhost,127.0.0.1,.internal.company.com

= çevresindeki boşluklara dikkat edin — bu, belgelendirilmiş .wgetrc sözdizimidir. Bu kullanıcıyla çalıştırdığınız tüm Wget komutları artık proxy üzerinden gidecektir.

Yöntem 3: Sistem Genelinde Yapılandırma (/etc/wgetrc)

~/.wgetrc ile aynı yönergeler, ama sistem yapılandırma dosyasına yazılır. GNU bunu genel bir başlangıç dosyası olarak belgeler — kesin yol, kurulum önekine bağlıdır. Yaygın konumlar:

  • /etc/wgetrc (çoğu Linux paket yöneticisi)
  • /usr/local/etc/wgetrc (bazı Homebrew kurulumları)
  • wget --version çıktısında “Wgetrc:” altında görünen yol

Bu yöntem paylaşılan sunucular, Docker konteynerleri veya tüm kullanıcıların aynı proxy üzerinden çıkması gereken ortamlar için kullanışlıdır.

Yöntem 4: Ortam Değişkenleri (http_proxy / https_proxy)

export http_proxy=http://HOST:PORT/
export https_proxy=http://HOST:PORT/
export no_proxy=localhost,127.0.0.1,.internal.company.com

Bunlar yalnızca Wget’i değil, tüm kabuk oturumunu etkiler. curl gibi araçlar da bunları kullanır.

Kritik uyarı: Wget yalnızca küçük harfli ortam değişkeni adlarını okur. HTTP_PROXY (büyük harfli) tamamen yok sayılır. Hata yok, uyarı yok, hiçbir şey yok. Gotcha bölümünde tam terminal çıktısını göstereceğim; ama bunu şimdiden akılda tutmakta fayda var.

Proxy Yöntemi Önceliği: Birden Fazla Yöntem Ayarlıysa Hangisi Geçerli Olur?

Proxy hem ortam değişkenlerinde hem .wgetrc içinde hem de komut satırında tanımlıysa hangisi kazanır? Bunu açıkça anlatan çok az kaynak var; ben test ettim.

İşte test edilen ve belgelenen öncelik sırası:

ÖncelikYöntemKapsamNeyi Geçersiz Kılar
1 (en yüksek)-e CLI bayraklarıTek komutHer şey
2~/.wgetrcGeçerli kullanıcıSistem yapılandırması + ortam değişkenleri
3/etc/wgetrcSistem genelindeYalnızca ortam değişkenleri
4 (en düşük)http_proxy / https_proxy ortam değişkenleriKabuk oturumuHiçbir şey

Bunu Wget 1.25.0 üzerinde, her seviyede çakışan proxy’ler ayarlayarak doğruladım. Ortam 3128 portunu, yapılandırma dosyası 3129’u, CLI ise 3130’u gösteriyordu:

  • Yapılandırma, ortamı geçer: Wget 3128’i yok sayıp 3129’a bağlandı.
  • CLI, yapılandırmayı geçer: Wget hem 3129’u hem 3128’i yok sayıp 3130’a bağlandı.

Acil çıkış anahtarı --no-proxy’dir. Nerede tanımlandığı fark etmeksizin tüm proxy ayarlarını atlar:

wget --no-proxy https://internal-server.company.com/report.pdf

Pratik senaryo: sistem yöneticiniz /etc/wgetrc içine proxy ekledi ama siz iç ağdaki bir sunucuya doğrudan ulaşmak istiyorsunuz. Sistem yapılandırmasını değiştirmek yerine bu tek komutta --no-proxy kullanın.

Kimlik Doğrulamalı Proxy ile Wget Nasıl Kullanılır?

auth-proxy-security-workflow.webp

Çoğu kurumsal ve ev tipi proxy kullanıcı adı ve parola ister. Wget bunu iki yöntemle destekler; ikisi de proxy kimlik bilgileri için HTTP Basic kimlik doğrulamasını kullanır.

Proxy URL’sine Doğrudan Kimlik Bilgisi Yazmak

wget -e use_proxy=on \
  -e http_proxy=http://USERNAME:PASSWORD@proxy.company.com:8080/ \
  http://example.com/file.zip

Bu yaklaşım .wgetrc içinde de çalışır:

http_proxy = http://USERNAME:PASSWORD@proxy.company.com:8080/
https_proxy = http://USERNAME:PASSWORD@proxy.company.com:8080/

--proxy-user ve --proxy-password Bayraklarını Kullanmak

wget --proxy-user=USERNAME --proxy-password=PASSWORD \
  -e use_proxy=on \
  -e http_proxy=http://proxy.company.com:8080/ \
  http://example.com/file.zip

Bu bayraklar, proxy URL’sine gömülü user:pass@ bilgisini geçersiz kılar.

Kimlik Bilgilerini Güvende Tutmak

Her iki yöntem de kimlik bilgilerini sızdırabilir. GNU, komut satırındaki parolaların ps veya işlem listesi araçlarıyla görülebileceği konusunda uyarır. Önlemler:

  • Tek kullanıcı makineleri: Kimlik bilgilerini ~/.wgetrc içinde saklayın ve dosyayı kilitleyin: chmod 600 ~/.wgetrc
  • CI/CD hatları: GitHub Actions şifreli secret’ları veya platformunuzdaki benzer sistemi kullanın. Bunları adım tanımında küçük harfli ortam değişkenleri olarak verin — YAML içine asla sabitlemeyin.
  • Docker build’leri: Sırlar için ARG veya ENV kullanmayın. Docker dokümantasyonu açıkça build argümanlarının nihai imajda kalabileceği uyarısını yapar. Bunun yerine BuildKit secret mount’larını kullanın.
  • Sürüm kontrolü: Kimlik bilgisi içeren .wgetrc dosyasını asla commit etmeyin. gitignore içine ekleyin.

GitHub Actions için Wget’e özgü bir ayrıntı: secret adları gelenek gereği büyük harfle saklanır; ancak Wget’e açtığınız ortam değişkenleri küçük harfli olmalıdır (HTTP_PROXY değil, http_proxy).

Windows’ta ve Kurumsal Güvenlik Duvarlarının Arkasında Wget’i Proxy ile Nasıl Kullanırsınız?

Bu konudaki çoğu yazı “Chocolatey ile kurun” noktasında bitiyor. Eğer Windows’taysanız veya kurumsal proxy arkasındaysanız, sorunlarınız aslında orada başlıyor.

windows-pac-ntlm-config.webp

Windows .wgetrc Dosyasını Nerede Arar?

GNU dokümantasyonu, WGETRC ortam değişkeni başka bir yeri göstermiyorsa Wget’in $HOME/.wgetrc dosyasını okuduğunu söyler. Windows’ta $HOME, kullandığınız ortama bağlı olarak %USERPROFILE% (ör. C:\Users\alice) ile eşleşebilir ya da eşleşmeyebilir — Chocolatey build, MSYS2 build, Git Bash veya bağımsız ikili dosya kullanmanıza göre değişir.

Benim önerim: tahmin etmeyi bırakın ve deterministik davranış için --config bayrağını kullanın:

wget --config=C:\Users\alice\wgetrc https://example.com/file.zip

Belirli bir konumdaki yapılandırma dosyasının okunup okunmadığını test etmek için, bilerek yanlış bir proxy’ye işaret eden bir deneme dosyası oluşturun:

; C:\Users\alice\wget-test.rc
use_proxy = on
http_proxy = http://127.0.0.1:3128/

Ardından şunu çalıştırın:

wget --config=C:\Users\alice\wget-test.rc --spider http://example.com/

Eğer Wget 127.0.0.1:3128 adresine bağlanmaya çalışırsa, dosyayı okumuş demektir.

Windows’ta Proxy Ortam Değişkenleri Nasıl Ayarlanır?

CMD (yalnızca oturum boyunca):

set http_proxy=http://HOST:PORT/
set https_proxy=http://HOST:PORT/
wget http://example.com/

PowerShell (yalnızca oturum boyunca):

$env:http_proxy = "http://HOST:PORT/"
$env:https_proxy = "http://HOST:PORT/"
wget http://example.com/

Kalıcı (yeniden başlatmadan sonra da kalır):

setx http_proxy http://HOST:PORT/
setx https_proxy http://HOST:PORT/

setx sonrasında yeni bir terminal penceresi açmanız gerekir. Mevcut oturum değişikliği görmez.

Kurumsal Proxy Gotchaları: PAC Dosyaları, NTLM Kimlik Doğrulama ve Proxy Adresini Bulma

Kurumsal kullanıcıların sürekli takıldığı üç konu:

PAC dosyaları: Birçok şirket Proxy Auto-Configuration (PAC) dosyaları kullanır — tarayıcıya hangi URL için hangi proxy’nin kullanılacağını söyleyen JavaScript tabanlı betikler. Wget’in JavaScript yorumlayıcısı yoktur, bu yüzden PAC dosyalarını okuyamaz. curl dokümantasyonu da aynı noktayı söyler. Çözüm: PAC dosyasını açın (veya IT’den isteyin), hedef etki alanınız için çıkan PROXY host:port sonucunu bulun ve Wget’te bu statik adresi kullanın.

NTLM kimlik doğrulama: Wget’in proxy kimlik doğrulaması yalnızca Basic auth uygular. Kurumsal proxy’niz NTLM istiyorsa ve 407 Proxy Authentication Required hatası alıyorsanız, farklı --proxy-user sözdizimleri denemeye vakit kaybetmeyin. Cntlm kurun — NTLM/NTLMv2 kimlik doğrulamasını yerelde karşılayıp Wget’e Basic auth arayüzü sunan bir ara katman. Cntlm hâlâ aktif olarak sürdürülüyor (son güncelleme Ekim 2025, haftada yaklaşık 395 indirme).

Kurumsal proxy kullanıcıları için karar ağacı:

  1. set http_proxy=http://YOUR_PROXY:PORT/ deneyin ve Wget’i çalıştırın.
  2. 407 hatası alırsanız ve şirketiniz NTLM kullanıyorsa → Cntlm kurun, etki alanı kimlik bilgilerinizle yapılandırın ve Wget’i Cntlm’in yerel portuna yönlendirin (genellikle http://127.0.0.1:3128/).
  3. Şirket PAC dosyası kullanıyorsa → PAC dosyasından gerçek PROXY host:port bilgisini çıkarın veya IT’den statik proxy adresini isteyin.

Yaygın kurumsal proxy portları: 3128 (Squid tarzı), 8080 (genel HTTP proxy), 8888 (Fiddler/Charles gibi hata ayıklama proxy’leri). Bunlar birer gelenektir, garanti değildir.

Wget ile Proxy Kullanırken Sık Yapılan Hatalar (Gerçek Hata Çıktılarıyla)

Şimdi başlıkta vaat edilen kısma gelelim. Aşağıdaki tüm çıktılar 2026-06-01 tarihinde Wget 1.25.0 (macOS, Homebrew) üzerinde yeniden üretildi.

wget-troubleshooting-diagnostic-flow.webp

Hata 1: http:// Önekinin Eksik Olması

Bazı eski rehberler bunun her zaman bozulacağını iddia eder. Wget 1.25.0’de http_proxy=127.0.0.1:3128 ayarlamak aslında çalışır — Wget sessizce başına http:// ekler:

Prepended http:// to '127.0.0.1:3128'
Spider mode enabled. Check if remote file exists.
--2026-06-01 10:38:15--  http://example.com/
Connecting to 127.0.0.1:3128... failed: Operation not permitted.

Yani doğru proxy’ye yine bağlanmaya çalıştı. Ama yine de her zaman http:// önekini ve sona eğik çizgi eklemenizi öneririm. Bu, Wget sürümleri arasındaki belirsizliği önler ve kimlik bilgisi yazımını (http://user:pass@host:port/) daha net hale getirir.

Hata 2: use_proxy=yes ile use_proxy=on Arasındaki Fark

Testlerimde Wget 1.25.0 için hem yes hem on çalıştı. Ancak geçersiz değerler net bir hata verir:

wget: use_proxy: Invalid boolean 'true'; use `on' or `off'.

En geniş uyumluluk için on kullanın — bu, kılavuzda belgelenen boolean biçimiyle ve Wget’in kendi hata ipucuyla uyumludur.

Hata 3: Büyük Harfli HTTP_PROXY’nin Sessizce Yok Sayılması

Bu en sinir bozucu hata, çünkü hiçbir hata mesajı çıkmaz. Wget sadece doğrudan bağlanır; sanki proxy hiç ayarlanmamış gibi.

Büyük harfli sürüm (bozuk — proxy kullanılmadı):

HTTP_PROXY=http://127.0.0.1:3128/ wget --no-config --spider http://example.com/
Spider mode enabled. Check if remote file exists.
--2026-06-01 10:40:06--  http://example.com/
Resolving example.com (example.com)... 198.18.58.61
Connecting to example.com (example.com)|198.18.58.61|:80... connected.
HTTP request sent, awaiting response... 200 OK

Küçük harfli sürüm (çalışıyor — proxy deneniyor):

http_proxy=http://127.0.0.1:3128/ wget --no-config --spider http://example.com/
Spider mode enabled. Check if remote file exists.
--2026-06-01 10:40:16--  http://example.com/
Connecting to 127.0.0.1:3128... failed: Connection refused.

Farkı görüyor musunuz? Büyük harfli sürüm example.com adresini doğrudan çözdü. Küçük harfli sürüm proxy’ye gitmeye çalıştı. Her iki durumda da uyarı yok. curl’da da benzer bir durum var — çoğu proxy değişkeni için büyük harfi kabul eder, ancak güvenlik nedeniyle HTTP_PROXY için büyük harfi açıkça reddeder.

Çözüm: Her zaman küçük harfli http_proxy ve https_proxy kullanın.

Hata 4: .wgetrc İçindeki Eski Proxy’nin “Connection Refused” Hatasına Yol Açması

Siz, sistem yöneticiniz ya da bir Docker imajı yapılandırma dosyasında eski bir proxy adresi bırakmışsa şöyle bir çıktı görürsünüz:

Spider mode enabled. Check if remote file exists.
--2026-06-01 10:39:10--  http://example.com/
Connecting to 127.0.0.1:3128... failed: Connection refused.

Hata, hedef siteyi değil eski proxy IP’sini işaret eder. Tanılama sırası (öncelik hiyerarşisine göre):

  1. Komutunuzda -e bayrakları veya kabuk takma adları var mı kontrol edin
  2. ~/.wgetrc dosyasını (veya WGETRC ile gösterilen dosyayı) kontrol edin
  3. Sistem yapılandırmasını kontrol edin (wget --version çıktısında görünen yol)
  4. Ortamı kontrol edin: env | grep -i proxy

Hata ayıklarken --no-config dostunuzdur — Wget’e tüm yapılandırma dosyalarını atlamasını söyler:

wget --no-config --spider http://example.com/

Bu çalışıyorsa sorun yapılandırma dosyalarından birindedir.

Hata 5: HTTPS Proxy Sözdizimi Karışıklığı

Bu çok kişiyi yanıltır. https_proxy ayarladığınızda, proxy URL’sinin kendisi çoğu zaman https:// değil, http:// olur. Çünkü Wget, şifreli HTTPS oturumu için tünel oluşturmak amacıyla proxy üzerinden bir HTTP CONNECT isteği gönderir.

Doğru:

https_proxy=http://proxy.company.com:8080/
wget https://example.com/

Wget, proxy’ye CONNECT example.com:443 HTTP/1.1 gönderir ve ardından HTTPS trafiğini onun içinden tüneller.

Yanlış (HTTP hedefleri için HTTPS proxy uç noktası kullanmak):

http_proxy=https://127.0.0.1:18082/
wget http://example.com/
Error in proxy URL https://127.0.0.1:18082/: Must be HTTP.

Wget 1.25.0, HTTP hedefleri için proxy URL’si olarak https:// kullanımını doğrudan reddeder. Kuruluşunuz özellikle bir HTTPS proxy uç noktası belgelemediyse ve Wget sürümünüzde test etmediyseniz https_proxy=http://HOST:PORT/ kullanın.

Wget Proxy Komutları Hızlı Referans Tablosu

Bu tabloyu yer imlerine ekleyin. Proxy ile ilgili tüm Wget bayraklarını ve yapılandırma yönergelerini tek yerde toplar.

Bayrak / YönergeBağlamÖrnekNotlar
-e use_proxy=onCLI-e use_proxy=onon en güvenli seçenektir; bazı derlemeler yes değerini de kabul eder
-e http_proxy=CLI-e http_proxy=http://proxy:8080/http:// önekini ve sonda / ekleyin
-e https_proxy=CLI-e https_proxy=http://proxy:8080/HTTPS hedeflerinde bile proxy URL’si genellikle http:// olur
--proxy-userCLI--proxy-user=adminGömülü user:pass@ bilgisini geçersiz kılar
--proxy-passwordCLI--proxy-password=secretps içinde görünür — paylaşılan sistemlerde kullanmayın
--no-proxyCLI--no-proxyTüm kaynaklardaki HER proxy ayarını atlar
--no-configCLI--no-configTüm yapılandırma dosyalarını atlar — hata ayıklama için çok yararlı
--config=FILECLI--config=/tmp/wgetrcKesin yapılandırma yolu — Windows ve CI için ideal
http_proxy.wgetrc / envhttp_proxy = http://proxy:8080/Yapılandırma dosyasında = çevresinde boşluk kullanılır; ortam değişkeni küçük harfli olur
https_proxy.wgetrc / envhttps_proxy = http://proxy:8080/http_proxy ile aynı biçim
ftp_proxy.wgetrc / envftp_proxy = http://proxy:8080/FTP indirmeleri için
no_proxy.wgetrc / envno_proxy = localhost,127.0.0.1,.corpVirgülle ayrılmış alan adı listesi
proxy_user.wgetrcproxy_user = admin--proxy-user ile eşdeğer
proxy_password.wgetrcproxy_password = secretDosyayı chmod 600 ile koruyun

Wget + Proxy Doğru Araç Değilse Ne Yapmalı? (ve Yerine Ne Kullanmalı)

data-extraction-workflow.webp

Tüm bu proxy kurulumlarından sonra biraz ters köşe bir görüş: Bazen hiç uğraşmamanız gerekir.

“wget proxy” diye arama yapanların çoğu aslında tek bir dosya indirmeye çalışmıyordur. Web sitelerinden yapılandırılmış veri toplamaya çalışıyorlardır — ürün fiyatları, iletişim listeleri, emlak ilanları — ve alıştıkları komut satırı aracı olduğu için otomatik olarak Wget’e yönelmişlerdir. Sorun şu: Wget size ham HTML verir. Bunu hâlâ ayrıştırmanız, temizlemeniz ve yapılandırmanız gerekir. Üstelik engelleri aşmak için proxy döndürüyorsanız, şimdi bir proxy listesi, bir indirme betiği, bir ayrıştırıcı ve bir dışa aktarma hattı yönetiyorsunuz demektir.

HedefinizEn İyi AraçNeden
Proxy üzerinden tek bir dosya indirmekProxy bayraklarıyla wgetBasit, tek komut
Bir siteyi veya dizini proxy üzerinden kopyalamakwget --recursive + proxy yapılandırmasıWget’in yinelemeli indirme gücü burada çok işe yarar
Yapılandırılmış veri kazımak (tablolar, listeler, iletişim bilgileri)ThunderbitWget ham HTML verir — yine de ayrıştırmanız gerekir. Thunderbit’in yapay zekâsı sayfayı okuyup veriyi kod yazmadan Excel, Google Sheets, Airtable veya Notion’a yapılandırılmış biçimde aktarır. Bulut tabanlı kazıma, IP döndürme ve bot karşıtı önlemleri yönetir; böylece proxy kurulumunu tamamen atlayabilirsiniz.
Bir proxy üzerinden REST API çağrıları yapmakcurlDaha iyi başlık kontrolü, yerleşik JSON desteği, SOCKS5 desteği
Sürekli ve zamanlanmış veri toplamaThunderbit Scheduled Scraper veya cron + wgetThunderbit sayfa düzeni değiştiğinde uyum sağlar; cron + wget betikleri sessizce bozulabilir

Wget dosya indirme işinde harikadır. Ama “proxy ayarla → IP değiştir → HTML indir → ayrıştırıcı yaz → tabloya aktar” akışı, sizin asıl ihtiyacınız veri tablosuyken oldukça fazla parçadan oluşur. Eğer durumunuz buysa, Chrome uzantımız tüm süreci iki tıklamada halleder. Bu yaklaşım hakkında daha fazlası için AI web scraping ve kod yazmadan web scraping rehberlerimize göz atın.

Ama hedefiniz “bu ZIP dosyasını kurumsal proxy üzerinden indir” ise — Wget hâlâ doğru araçtır ve artık onu nasıl doğru yapılandıracağınızı biliyorsunuz.

Önemli Çıkarımlar

Kısa özet:

  • Dört yöntem, net öncelik sırası: CLI bayrakları kullanıcı yapılandırmasını, kullanıcı yapılandırması sistem yapılandırmasını, sistem yapılandırması da ortam değişkenlerini geçersiz kılar. --no-proxy ise her şeyi geçersiz kılar.
  • Ortam değişkenlerinde daima küçük harf kullanın (HTTP_PROXY değil, http_proxy). Büyük harfli sürüm sessizce yok sayılır.
  • Proxy URL’nizde, https_proxy için bile daima http:// kullanın. Proxy uç noktası HTTP’dir; HTTPS’i CONNECT ile tüneller.
  • .wgetrc ve -e bayraklarında boolean değerler için on kullanın. Sürümler arasında en güvenli seçim budur.
  • Windows kullanıcıları: Yapılandırma dosyası belirsizliğini önlemek için --config=C:\path\to\wgetrc kullanın. Oturum proxy değişkenleri için set (CMD) veya $env: (PowerShell) kullanın.
  • Kurumsal proxy kullanıcıları: Wget PAC dosyalarını okuyamaz ve NTLM kimlik doğrulamasını yerel olarak desteklemez. Gerekirse yerel ara katman olarak Cntlm kullanın.
  • Yukarıdaki hızlı referans tablosunu yer imlerine ekleyin — bir bayrak adına ihtiyaç duyduğunuzda bu makaleyi baştan okumanızı engeller.

Asıl hedefiniz yapılandırılmış veri çıkarmaksa, Thunderbit veya curl daha iyi bir seçenek olabilir. En iyi hata ayıklama oturumu, asla başlamak zorunda kalmadığınız oturumdur.

Sık Sorulan Sorular

1. Wget SOCKS5 proxy’lerini destekler mi?

Hayır. GNU Wget 1.x yalnızca HTTP, HTTPS ve FTP proxy’lerini destekler. Wget2 projesinde SOCKS5 için bir özellik talebi var, ancak bu standart ve belgelenmiş bir seçenek değil. SOCKS5 için, yerleşik socks5:// veya socks5h:// şemalarıyla curl kullanın ya da Wget’i SOCKS yönlendirmesine zorlamak için proxychains4 ile sarın.

2. Neden büyük harfli HTTP_PROXY kullandığımda proxy ayarım yok sayılıyor?

Wget yalnızca küçük harfli ortam değişkeni adlarını okur (http_proxy, https_proxy, ftp_proxy, no_proxy). HTTP_PROXY gibi büyük harfli sürümler sessizce yok sayılır — hata da vermez, uyarı da. Bu, en yaygın ve en sinir bozucu sorunlardan biridir; çünkü bir şeyin yanlış olduğuna dair hiçbir işaret yoktur. Her zaman küçük harf kullanın.

3. Belirli alan adları için proxy’yi nasıl atlarım?

no_proxy yönergesini ortam değişkeni olarak ya da .wgetrc içinde kullanın:

export no_proxy=localhost,127.0.0.1,.mycompany.com

Veya ~/.wgetrc içinde:

no_proxy = localhost,127.0.0.1,.mycompany.com

Alan adları virgülle ayrılır. Baştaki nokta (.mycompany.com) tüm alt alan adlarını eşleştirir.

4. Wget’i dönen proxy’lerle kullanabilir miyim?

Wget’in yerleşik proxy döndürme özelliği yoktur. İki seçeneğiniz vardır: IP’leri sunucu tarafında döndüren bir proxy sağlayıcı kullanmak (siz her zaman aynı gateway adresine gidersiniz, ama çıkış IP’si değişir) ya da bir listedeki rastgele bir proxy’yi seçip her çalıştırmada -e http_proxy=... ile aktaran bir kabuk betiği yazmak. Otomatik döndürme, yeniden deneme mantığı, bot önleme gibi daha karmaşık işler için genellikle özel bir kazıma aracı daha uygundur.

5. Wget’te http_proxy ile https_proxy arasındaki fark nedir?

Hedef URL http:// ise http_proxy kullanılır. Hedef URL https:// ise https_proxy kullanılır. Her iki durumda da proxy URL’si genellikle http:// adresidir. HTTPS hedeflerinde Wget, proxy üzerinden bir HTTP CONNECT isteği göndererek tünel kurar; gerçek HTTPS şifrelemesi Wget ile hedef sunucu arasında uçtan uca gerçekleşir. Proxy, CONNECT isteğinden alan adını görür ama şifrelenmiş trafiği okuyamaz.

AI Web Scraping için Thunderbit’i Deneyin Get Started Free

Daha Fazla Bilgi

Ke
Ke
Thunderbit’ta CTO | Kıdemli Veri Bilimci ve ML Uzmanı Makine öğrenimi ve veri bilimi alanında yaklaşık on yıllık deneyime sahip olan Ke Shen, Columbia University mezunu ve Walmart Labs’te eski Kıdemli Veri Bilimci’dir. Python, R, Java ve İstatistik konularında derin ve meslektaşları tarafından tanınan uzmanlığıyla, karmaşık yapay zekâ algoritmalarını teoriden üretim düzeyinde mimariye taşıma konusunda sahada test edilmiş içgörüler paylaşır.
İçindekiler

Sadece sorarak bir web sayfasını çek

Ne istediğini düz İngilizceyle söyle. Hatta daha iyisi, hiçbir şey söyleme.

Thunderbit’i dene ücretsiz
Yapay Zeka ile Veri Çıkar
Verileri Google Sheets, Airtable veya Notion’a kolayca aktar
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week