Labirentte Gezinme: Dinamik İçerik Kazıma için Ücretsiz Proxy İş Akışları
Dinamik İçerik Kazımayı Anlama
Modern web sayfalarını canlandıran o değişken güç olan dinamik içerik, saf HTTP isteklerinin kavrayışından kaçıyor. JavaScript tarafından işlenen bu içerik, basit GET'lerden daha fazlasını gerektiriyor; orkestrasyon gerektiriyor: meşru tarayıcılar gibi görünen istekler, IP yasaklarını aşan proxy'ler ve satır aralarını okuyan kodlar.
Dinamik Kazımada Proxy'lerin Rolü
Vekiller, dijital maskeli balomuzdaki maskelerdir ve şunlar için gereklidir:
- IP tabanlı hız sınırlarından kaçınma
- Coğrafi kısıtlamaları aşmak
- Tespit edilmekten kaçınmak için trafiğin dağıtılması
Peki, bu anonimlik kasalara el atmadan nasıl elde edilir? Ücretsiz proxy'ler - geçici, kontrol edilemez ve yine de vazgeçilmez. Kullanımlarını cerrahi bir hassasiyetle inceleyelim.
İş Akışı 1: İstekler ve BeautifulSoup ile Ücretsiz Genel Proxy'leri Döndürme
İçindekiler
- Ücretsiz Proxy Listeleri
istekler
,GüzelÇorba
Python'da
Adımlar
- Hasat Vekilleri
Örneğin, ücretsiz proxy'lerin bir listesini çıkarın ücretsiz-proxy-listesi.net.
“`piton
ithalat talepleri
bs4'ten BeautifulSoup'u içe aktar
def get_proxies():
url = 'https://ücretsiz-proxy-listesi.net/'
çorba = BeautifulSoup(istekler.get(url).content, 'html.parser')
vekiller = set()
soup.find('table', id='proxylisttable').tbody.find_all('tr') içindeki satır için:
if row.find_all('td')[6].text == 'yes': Yalnızca # HTTPS proxy'leri
ip = satır.find_all('td')[0].metin
port = row.find_all('td')[1].text
proxy'ler.add(f'{ip}:{port}')
dönüş listesi (proxy'ler)
“`
- İstekler için Proxy'leri Döndürün
“`piton
rastgele içe aktar
vekiller = get_proxies()
def fetch_with_proxy(url):
proxy = random.choice(proxy'ler)
denemek:
resp = requests.get(url, proxy'ler={“http”: f”http://{proxy}”, “https”: f”http://{proxy}”}, zaman aşımı=5)
eğer resp.durum_kodu == 200 ise:
cevap metnini döndür
İstisna hariç:
geçmek
Hiçbiri geri dönmedi
“`
- Dinamik İçeriği Yönetin
Minimum JS içeren sayfalar için, XHR uç noktalarını bulmak ve verileri doğrudan almak için ağ trafiğini inceleyin.
Avantajlar ve Dezavantajlar
Özellik | Artıları | Eksileri |
---|---|---|
Kurmak | Hızlı, kolay | Proxy'ler genellikle güvenilir değildir |
Anonimlik | IP rotasyonu yasakları azaltır | Sık sık ölü/yavaş proxy'ler |
Dinamik İçerik | Sadece basit JS ile oluşturulmuş siteler için çalışır | Tam JS siteler için tarayıcı emu'su gerekir |
İş Akışı 2: Selenium ile Veri Toplama ve Ücretsiz Proxy Rotasyonu
İçindekiler
- SSL Proxy'leri
- Selenyum bir tarayıcı sürücüsü ile
Adımlar
- Bir Proxy Listesi Getir
Yukarıdakine benzer mantık, ancak hedefleme sslproxies.org.
- Selenium'u Proxy Kullanacak Şekilde Yapılandırma
“`piton
selenium'dan webdriver'ı içe aktar
selenium.webdriver.chrome.options'dan Seçenekleri içe aktarın
def get_chrome_driver(proxy):
seçenekler = Seçenekler()
seçenekler.argüman_ekle(f'–proxy-sunucusu=http://{proxy}')
seçenekler.add_argument('–başsız')
webdriver.Chrome(seçenekler=seçenekler) döndür
“`
- Dinamik İçeriği Kazı
piton
vekiller = get_proxies()
sürücü = get_chrome_driver(rastgele.seçim(proxy'ler))
sürücü.get('https://quotes.toscrape.com/js/')
içerik = sürücü.sayfa_kaynağı
sürücü.çıkış()
Şiirsel Not
Selenium ile tarayıcınız fırçanız olur ve sayfayı insan kullanıcısının göreceği şekilde boyar: JavaScript, CSS ve etkileşimin tüm incelikleri.
Avantajlar ve Dezavantajlar
Özellik | Artıları | Eksileri |
---|---|---|
JS Oluşturma | Herhangi bir dinamik içeriği işler | Kaynaklar açısından ağır |
Vekalet Rotasyonu | IP'yi etkili bir şekilde maskeler | Proxy'ler tarayıcıyı yavaşlatabilir veya engelleyebilir |
Tespit | Daha insan benzeri, daha az tespit edilebilir | Ücretsiz proxy'ler genellikle büyük siteler tarafından engellenir |
İş Akışı 3: Node.js Tutkunları için ProxyChain ile Kuklacı
İçindekiler
Adımlar
- Ücretsiz Proxy'ler Edinin
javascript
sabit aksios = 'axios' gerektirir;
eşzamansız işlev getProxies() {
const res = await axios.get('https://www.proxy-list.download/api/v1/get?type=https');
res.data.split('\r\n').filter(Boolean) döndür;
}
- Puppeteer ile Proxy'leri Döndürmek için ProxyChain'i Kullanın
“`javascript
sabit kuklacı = require('kuklacı');
const ProxyChain = require('proxy-zinciri');
(eşzamansız () => {
const proxy'ler = getProxies'i bekliyor();
(proxy'lerin sabit proxyUrl'si için) {
sabit anonimleştirilmişProxy = await ProxyChain.anonymizeProxy(http://${proxyUrl}
);
sabit tarayıcı = kuklacıyı bekle.başlat({
argümanlar: [--proxy-server=${anonimleştirilmişProxy}
, '–sandbox yok', '–setuid-sandbox'ı devre dışı bırak'],
başsız: doğru,
});
sabit sayfa = await tarayıcı.yeniSayfa();
denemek {
sayfaya git.'https://quotes.toscrape.com/js/', {waitUntil: 'networkidle2'});
sabit içerik = await page.content();
// İşlem içeriği…
} yakala (e) {
// Kötü proxy'leri atla
}
tarayıcıyı bekle.kapat();
}
})();
“`
Avantajlar ve Dezavantajlar
Özellik | Artıları | Eksileri |
---|---|---|
Otomasyon | Node.js'de sağlam betikleme | Node.js bağımlılığı |
Vekalet Rotasyonu | ProxyChain arızaları yönetir | Ücretsiz proxy'ler genellikle dengesiz/yavaştır |
Dinamik İçerik | Kuklacı tüm JS'yi işler | Proxy hızına göre oran sınırlıdır |
İş Akışı 4: Scrapy ile Akıllı İstek Planlaması + Ücretsiz Proxy Ara Yazılımı
İçindekiler
- Dağınık
- scrapy-dönen-proxy'ler
- Ücretsiz proxy listeleri (proxyscrape.com)
Adımlar
- Ara Yazılımı Yükle
pip scrapy-dönen-proxy'leri yükle
- Scrapy Ayarlarını Yapılandırın
piton
# ayarları.py
DÖNEN_PROXY_LISTE_YOLU = 'proxies.txt'
İNDİRİCİ_ARA_YAZILIMLAR = {
'dönen_proxy'ler.middleware'ler.DönenProxyMiddleware': 610,
'dönen_proxy'ler.middleware'ler.BanDetectionMiddleware': 620,
}
- Proxy Listesini Doldur
Proxy'leri indirin ve kaydedin proxy'ler.txt
:
https://api.proxyscrape.com/v2/?request=getproxies&protocol=http&timeout=1000&country=all&ssl=all&anonymity=all
- Scrapy Spider ile kazıyın
Dönen proxy'lerle Scrapy, dinamik içerik bahçesinde parmak uçlarında gezinir. Tam JS için şunu kullanın: düzensiz oyun yazarı:
vuruş
pip install scrapy-playwright
Ve örümceğinizde:
“`piton
scrapy'yi içe aktar
sınıf QuotesSpider(scrapy.Spider):
isim = “tırnak işaretleri”
başlangıç_urls = ['https://quotes.toscrape.com/js/']
def start_requests(self): for url in self.start_urls: yield scrapy.Request(url, meta={"playwright": True}) def parse(self, response): for quote in response.css("div.quote"): yield { "text": quote.css("span.text::text").get(), "author": quote.css("small.author::text").get(), }
“`
Avantajlar ve Dezavantajlar
Özellik | Artıları | Eksileri |
---|---|---|
Hız | Verimli talep planlama | Scrapy için öğrenme eğrisi |
Vekalet Rotasyonu | Ara yazılım yasakları yönetir | Ücretsiz proxy'ler daha az güvenilirdir |
JS Desteği | Playwright ile tam JS'yi yönetir | Ağır siklet kurulumu |
İş Akışı 5: Ücretsiz Proxy Ağ Geçitleri Aracılığıyla API Odaklı Veri Toplama
İçindekiler
- Web Paylaşım API'si (sınırlı ücretsiz katman)
- ScraperAPI ücretsiz planı (sınırlı kullanım)
Adımlar
- API Anahtarını veya Proxy Uç Noktasını Edinin
Kayıt olun ve ücretsiz uç nokta edinin.
- Proxy Ağ Geçidi Üzerinden Yönlendirme İstekleri
ScraperAPI için:
piton
api_anahtarı = 'API_ANAHTARINIZ'
url = f'http://api.scraperapi.com/?api_key={api_key}&url=https://quotes.toscrape.com/js/'
yanıt = istekler.get(url)
Web Paylaşım proxy'leri için önceki örneklerdeki gibi kullanın.
Avantajlar ve Dezavantajlar
Özellik | Artıları | Eksileri |
---|---|---|
Güvenilirlik | Yönetilen proxy'ler, daha az kesinti | Sınırlı sayıda ücretsiz istek |
Kullanım Kolaylığı | Özetler vekil rotasyonu | Belirli siteleri engelleyebilir |
Dinamik İçerik | Bazı API'ler, geri dönmeden önce JS'yi işler | Yoğun kullanım için ücretli katmanlar |
Karşılaştırmalı Özet Tablosu
İş akışı | Dinamik JS Desteği | Vekalet Rotasyonu | Güvenilirlik | Ücretsiz Sınırlamalar | En İyi Kullanım Örneği |
---|---|---|---|---|---|
İstekler + Ücretsiz Proxy'ler | Düşük | Manuel | Düşük | Engellenen/yavaş proxy'ler | Basit XHR API'leri |
Selenium + Ücretsiz Proxy'ler | Yüksek | Manuel | Orta | Engellenen proxy'ler, yüksek CPU | Karmaşık JS siteleri, küçük ölçekli |
Kuklacı + ProxyChain | Yüksek | Otomatik | Orta | Sık proxy arızaları | Node.js otomasyonu |
Scrapy + Dönen Proxy'ler | Yüksek (Oyun Yazarı ile) | Otomatik | Orta | Ara yazılım yapılandırması, yavaş proxy'ler | Ölçeklenebilir, gelişmiş kazıma |
Proxy API Ağ Geçitleri | Yüksek (API'ye bağlı) | Otomatik | Yüksek | Sınırlı sayıda talep var, kayıt yaptırmanız gerekiyor | Tek seferlik, güvenilir kazıma |
Kaynaklar
- ücretsiz-proxy-listesi.net
- sslproxies.org
- proxy-listesi.indir
- proxyscrape.com/ücretsiz-proxy-listesi
- scrapy-dönen-proxy'ler
- düzensiz oyun yazarı
- kuklacı-ekstra-eklenti-proxy
- Web Paylaşımı Ücretsiz Proxy Listesi
- Kazıyıcı API'si
Kodunuzun keski, vekillerinizin mermer olmasına izin verin; sabırla yontun, çünkü her dinamik sayfa, yüzeyin altında açığa çıkmayı bekleyen dijital bir heykeldir.
Yorumlar (0)
Burada henüz yorum yok, ilk siz olabilirsiniz!