Web Otomasyonunda Proxy'leri Anlamak
Proxy'ler, internetin gizli ajanları gibi davranarak IP adresinizi maskeler ve dijital sınırları incelikle aşmanızı sağlar. Web otomasyonu bağlamında – Selenium ve Puppeteer'ın tarayıcının sahnesinde dans ettiği yerde – proxy'ler, hız sınırlamalarını, coğrafi kısıtlamaları ve gözetimi aşmak için vazgeçilmezdir. Ücretsiz proxy'ler, kaprisli ve geçici olsalar da, hafif, kritik olmayan veri toplama veya test senaryoları için yeterli olabilir.
Proxy Türleri ve Özellikleri
| Proxy Türü | Anonimlik Seviyesi | Desteklenen Protokoller | Tipik Kullanım Senaryosu | Güvenilirlik |
|---|---|---|---|---|
| HTTP | Düşük ila Orta | HTTP, HTTPS | Basit web kazıma | Düşük |
| SOCKS4/5 | Yüksek | SOCKS4, SOCKS5 | Karmaşık protokoller, HTTPS | Orta |
| Şeffaf | Yok (IP adresini gösterir) | HTTP, HTTPS | Önbellekleme, dahili kullanım | Çok Düşük |
| Seçkin/Anonim | Yüksek | HTTP, HTTPS | Coğrafi engelleri aşmak | Orta |
Ücretsiz proxy listelerinin bir derlemesi için lütfen inceleyin. https://free-proxy-list.net/ veya https://www.sslproxies.org/.
Selenium ile Ücretsiz Proxy Kullanımı (Python)
1. Bağımlılıkların Kurulumu
pip selenyum kurulumu
En son sürümü indirin ChromeDriver Chrome sürümünüzle uyumludur.
2. Selenium'da Proxy Yapılandırma
Bu dijital kukla olan tarayıcıya şu şekilde komut verilebilir:
from selenium import webdriver from selenium.webdriver.chrome.options import Options proxy = "186.121.235.66:8080" # Bunu kendi ücretsiz proxy adresinizle değiştirin options = Options() options.add_argument(f'--proxy-server=http://{proxy}') driver = webdriver.Chrome(options=options) driver.get('https://httpbin.org/ip') print(driver.page_source) driver.quit()
Tablo: Chrome'da Sık Kullanılan Proxy Ayarları
| Seçenek | Tanım |
|---|---|
--proxy-sunucusu=http://IP:PORT |
HTTP proxy ayarlarını yapın |
--proxy-sunucusu=https=IP:PORT |
HTTPS proxy ayarlarını yapın. |
--proxy-bypass-list=localhost;127.0.0.1 |
Vekil sunucudan adresleri hariç tut |
3. Kimlik Doğrulama ile Proxy Kullanımı
Kimlik doğrulamalı ücretsiz proxy'ler nadir bulunan değerli eşyalardır, ancak birine denk gelirseniz:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # Kimlik doğrulamalı proxy'ler, Chrome uzantısı geçici çözümü gerektirir from selenium.webdriver.common.by import By import zipfile proxy_host = 'proxy.example.com' proxy_port = 8000 proxy_user = 'user' proxy_pass = 'pass' manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", " ", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] } } """ background_js = f""" var config = {{ mode: "fixed_servers", rules: {{ singleProxy: {{ scheme: "http", host: "{proxy_host}", port: parseInt({proxy_port}) }}, bypassList: ["localhost"] }} }}; chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}}); function callbackFn(details) {{ return {{ authCredentials: {{ username: "{proxy_user}", password: "{proxy_pass}" }} }}; }} chrome.webRequest.onAuthRequired.addListener( geri çağrı fonksiyonu, {{url'ler: [" "]}}, ['engelleme'] ); """ # Proxy uzantı eklentisini oluşturun pluginfile = 'proxy_auth_plugin.zip' with zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) chrome_options = Options() chrome_options.add_extension(pluginfile) driver = webdriver.Chrome(options=chrome_options) driver.get('https://httpbin.org/ip')
Referans: Selenium Proxy Kimlik Doğrulaması (GitHub Gist)
Puppeteer (Node.js) ile Ücretsiz Proxy Kullanımı
1. Puppeteer'ı Kurma
npm kuklacıyı kurun
2. Puppeteer'ı Bir Proxy ile Başlatma
Tarayıcının yeni maskesini takmasına izin verelim:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://186.121.235.66:8080'] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();
3. Vekil Sunucu Kimlik Doğrulamasının Yönetimi
Güvenlik görevlisi kimlik bilgilerini istediğinde:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://proxy.example.com:8000'] }); const page = await browser.newPage(); await page.authenticate({ username: 'user', password: 'pass' }); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();
4. Puppeteer'da Proxy'leri Döndürme
Geçici kimliklerin balesi, işte böyle sahnelenmiş:
const proxys = [ 'http://proxy1:port', 'http://proxy2:port', 'http://proxy3:port' ]; const puppeteer = require('puppeteer'); (async () => { for (const proxy of proxys) { const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(`Proxy: ${proxy}\n${body}\n`); await browser.close(); } })();
Ücretsiz Proxy Kaynakları
| İsim | URL | Özellikler |
|---|---|---|
| Ücretsiz Proxy Listesi | https://free-proxy-list.net/ | Geniş HTTP/S listesi, güncellendi. |
| SSL Proxy'leri | https://www.sslproxies.org/ | HTTPS proxy'leri, hızlı güncelleme |
| Proxy Kazıma | https://proxyscrape.com/free-proxy-list | Çoklu protokoller |
| Casuslar.bir | http://spys.one/en/ | Gelişmiş filtreleme |
En İyi Uygulamalar ve Sınırlamalar
- Geçici Doğa: Ücretsiz proxy'ler genellikle haber vermeden ortadan kaybolur; bunların aktif olup olmadığını aşağıdaki gibi araçlar kullanarak takip edin. Proxy Denetleyicisi.
- Hız ve Güvenilirlik: Gecikmeler, zaman aşımı ve ara sıra çıkmaz sokaklarla karşılaşmayı bekleyin.
- Güvenlik: Hassas hesaplarınız için asla ücretsiz proxy kullanmayın; ortadaki adam saldırıları her an pusuda bekleyebilir.
- Hukuki ve Etik Hususlar: Robots.txt dosyasına ve hizmet şartlarına her zaman saygı gösterin.
Proxy Doğrulama Örneği (Python)
Tarayıcınızı çalıştırmadan önce, proxy'nin durumunu test edin:
import requests proxy = "186.121.235.66:8080" proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"} try: response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=5) print(response.json()) except Exception as e: print(f"Proxy failed: {e}")
Yorumlar (0)
Burada henüz yorum yok, ilk siz olabilirsiniz!