HH.ru, Indeed ve LinkedIn gibi platformlarda iş ilanı scraping'i yaparken proxy'ler kritik önemdedir: IP tabanlı istek limitlerini, coğrafi kısıtlamaları ve bot karşıtı mekanizmaları aşarak tutarlı ve ölçeklenebilir veri çekimini mümkün kılarlar.
İş ilanı scraping'i, iş ilanı yayınlayan sitelerden otomatik veri toplamayı ifade eder. Büyük iş ilanı platformları scraping'i engellemek için IP kara listeleri, CAPTCHA doğrulamaları ve user-agent analizi dahil olmak üzere gelişmiş bot karşıtı sistemler kullanır. Proxy'ler araya bir IP adresi koyarak scraper'ın kaynağını gizler ve istekleri birden fazla kimliğe dağıtır; böylece tespit edilme ve engellenme riskini azaltır.
İş ilanı scraping'inde proxy'ler neden gerekli
İş platformlarına otomatik erişim, sunucu kaynaklarını ve tescilli verileri korumak için tasarlanmış güvenlik önlemlerini sık sık tetikler. Bu önlemler şunları içerir:
- IP istek limiti: tek bir IP adresinden belirli bir zaman aralığında gelen istek sayısının sınırlanması. Bu limitin aşılması geçici veya kalıcı IP banlarına yol açar.
- Coğrafi kısıtlamalar: bazı ilanlar veya platform özellikleri coğrafi konuma göre kısıtlanabilir. Belirli geo-targeting yeteneklerine sahip proxy'ler bu kısıtlamaları aşabilir.
- Bot tespiti: gelişmiş sistemler; istek desenlerini, HTTP başlıklarını (örneğin User-Agent, Referer) ve tarayıcı parmak izlerini analiz ederek otomatik trafiği tanır ve engeller.
- CAPTCHA doğrulamaları: şüpheli etkinlik tespit edildiğinde platformlar, insan etkileşimini doğrulamak için genellikle CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) gösterir.
İş ilanı scraping'i için proxy türleri
Proxy türü seçimi; scraping başarı oranını, maliyeti ve performansı belirgin biçimde etkiler.
Veri merkezi proxy'leri
Veri merkezi proxy'leri, veri merkezlerindeki ticari sunuculardan çıkar.
* Avantajları: yüksek hız, düşük maliyet, geniş havuzlar.
* Dezavantajları: bilinen alt ağ aralıkları ve ticari kaynakları nedeniyle gelişmiş bot karşıtı sistemlerce kolayca tespit edilir. Büyük iş ilanı sitelerinde sık sık engellenir.
* Uygunluk: güçlü scraping karşıtı önlemleri olan platformlarda sınırlı. İlk testler veya daha az korunan uç noktalar için kullanılabilir, ancak HH, Indeed veya LinkedIn'de sürekli ve yüksek hacimli iş ilanı scraping'i için genel olarak önerilmez.
Residential proxy'ler
Residential proxy'ler trafiği, İnternet servis sağlayıcılarının (ISP) ev kullanıcılarına atadığı gerçek IP adresleri üzerinden yönlendirir.
* Avantajları: yüksek anonimlik, bot trafiği olarak tespit edilmesi zor, geo-targeting yetenekleri, hedef sitelerde daha yüksek güven puanı.
* Dezavantajları: veri merkezi proxy'lerinden pahalı, ev ağları üzerinden geçtiği için potansiyel olarak daha yavaş, havuz büyüklüğü değişkenlik gösterebilir.
* Uygunluk: meşru kullanıcı trafiğini taklit edebildikleri için her üç platformda da (HH.ru, Indeed, LinkedIn) iş ilanı scraping'i için kesinlikle önerilir. Gelişmiş bot karşıtı önlemleri aşmak için kritiktir.
Mobil proxy'ler
Mobil proxy'ler trafiği, mobil şebeke operatörlerinin mobil cihazlara atadığı IP adresleri üzerinden yönlendirir (3G/4G/5G).
* Avantajları: en yüksek güven puanı, bot trafiği olarak tespit edilmesi son derece zor, mobil şebekelere içkin dinamik IP rotasyonu.
* Dezavantajları: en pahalısı, daha küçük havuzlar, veri merkezi proxy'lerinden yavaş olabilir.
* Uygunluk: en zorlu scraping senaryoları için, özellikle bot tespitinin agresif olduğu LinkedIn için mükemmeldir. En yüksek başarı oranını sunar, ancak yüksek bir maliyetle.
Platforma özgü hususlar
HH.ru (HeadHunter)
HH.ru güçlü bot karşıtı önlemler uygular. Proxy kullanmadan doğrudan scraping yapmak hızla IP engeliyle sonuçlanır.
* Zorluklar: agresif IP kara listeleme, sık CAPTCHA, oturum tabanlı izleme.
* Proxy stratejisi:
* Residential proxy'ler: sürekli scraping için şarttır.
* Sticky oturumlar: tek bir kullanıcı oturumunu taklit etmek ve şüphe çekmemek için aynı IP'yi belirli bir süre koruyun.
* Geo-targeting: Rusya/BDT içinde belirli bölgeleri tarıyorsanız o bölgelerde bulunan proxy'leri kullanın.
* İstek gecikmeleri: istek limitlerini tetiklememek için istekler arasında değişken gecikmeler uygulayın (örneğin 5-15 saniye).
Indeed
Indeed, CAPTCHA ve IP itibar puanlaması dahil çeşitli bot karşıtı teknikler kullanır.
* Zorluklar: sık CAPTCHA doğrulamaları, dinamik içerik yüklemesi (JavaScript render), istek desenlerine dayalı IP engelleme.
* Proxy stratejisi:
* Residential proxy'ler: oldukça etkili.
* Rotasyonlu proxy'ler: istekleri dağıtmak ve tespit edilmemek için sık sık dönen bir residential IP havuzu kullanın.
* Tarayıcı emülasyonu: JavaScript render'ı işlemek ve tarayıcı parmak izlerini daha doğru taklit etmek için proxy'leri headless tarayıcılarla (örneğin Puppeteer, Selenium) birlikte kullanın.
* User-Agent yönetimi: yaygın tarayıcı User-Agent'larını dönüşümlü kullanın.
import requests
proxies = {
"http": "http://user:password@proxy_ip:port",
"https": "http://user:password@proxy_ip:port",
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36"
}
try:
response = requests.get("https://www.indeed.com/jobs?q=software+engineer", proxies=proxies, headers=headers, timeout=10)
response.raise_for_status() # HTTP hatalarında istisna fırlatır
print(response.text[:500]) # Yanıtın ilk 500 karakterini yazdırır
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
LinkedIn, en gelişmiş ve en agresif scraping karşıtı önlemlerden bazılarını uygular. LinkedIn'i açık izin olmadan scrape etmek Kullanıcı Sözleşmesi'ni ihlal eder ve hesap askıya alınmasına ve yasal işleme yol açabilir.
* Zorluklar: çok agresif IP engelleme, gelişmiş bot tespiti, katı istek limitleri, yoğun JavaScript render, hesap tabanlı erişim gereksinimleri ve hukuki/etik sonuçlar.
* Proxy stratejisi:
* Yüksek kaliteli residential veya mobil proxy'ler: kesinlikle kritik. Veri merkezi proxy'leri anında tespit edilip engellenir.
* Sticky oturumlar: bir oturum boyunca tutarlı bir "kullanıcı" kimliği korumak için şarttır.
* Hesap yönetimi: kimlik doğrulamalı scraping kullanıyorsanız (ki bu ciddi risk taşır), birden fazla LinkedIn hesabını dikkatle yönetin ve her birini ayrı bir proxy IP'siyle eşleştirin.
* İstek limiti ve gecikmeler: son derece muhafazakâr istek hızları gerekir (örneğin saniyeler değil, istekler arasında dakikalar). İnsan benzeri gecikmeler çok önemlidir.
* Tarayıcı otomasyonu: çerezler, local storage ve JavaScript yürütmesi dahil tam tarayıcı davranışını taklit etmek için headless tarayıcılar kullanın.
* Etik ve hukuki hususlar: LinkedIn scraping'i yüksek risklidir. Kullanıcılar hizmet şartlarının ve olası hukuki sonuçların farkında olmalıdır.
Proxy tabanlı scraping için en iyi uygulamalar
- Proxy rotasyonu: IP adreslerini döndürmek için bir strateji uygulayın.
- Zamana dayalı rotasyon: her X dakika/saniyede bir IP değiştirin.
- İsteğe dayalı rotasyon: Y istekten sonra IP değiştirin.
- Hataya dayalı rotasyon: bir hatayla karşılaşınca IP değiştirin (örneğin 403 Forbidden, CAPTCHA).
- User-Agent yönetimi: meşru ve güncel tarayıcı User-Agent'larından oluşan bir listeyi dönüşümlü kullanın. Varsayılan scraper User-Agent'larından kaçının.
- İstek başlıkları: tipik tarayıcı başlıklarını taklit edin (Accept, Accept-Language, Referer, Connection).
- Gecikmeler: istekler arasına rastgele, insan benzeri gecikmeler koyun. Öngörülebilir, arka arkaya hızlı isteklerden kaçının.
- Oturum yönetimi: giriş gerektiren veya durum tutan platformlarda, tek bir "oturum" için aynı IP'nin kullanılmasını sağlamak amacıyla sticky proxy'ler kullanın.
- Hata yönetimi: HTTP hatalarını (403 Forbidden, 429 Too Many Requests) proxy döndürerek, yeniden deneyerek veya gecikmeleri artırarak düzgün biçimde ele alın.
- Geo-targeting: yerelleştirilmiş içeriğe erişmek veya coğrafi engelleri aşmak için ilgili coğrafi konumlardan proxy seçin.
- İzleme: proxy performansını (başarı oranı, hız) sürekli izleyin ve stratejileri gerektiği gibi ayarlayın.
İş ilanı scraping'i için proxy sağlayıcı özellikleri
İş ilanı scraping'i için bir proxy sağlayıcı seçerken şu özellikleri değerlendirin:
- Büyük IP havuzu: çeşitli ve geniş bir residential ve mobil IP havuzuna erişim, zaten banlanmış IP'lere denk gelme olasılığını azaltır.
- Geo-targeting: belirli ülkelerden, bölgelerden, hatta şehirlerden proxy seçebilme.
- Sticky oturumlar: aynı IP adresini belirli bir süre koruyabilme desteği; oturum tabanlı scraping için kritiktir.
- API erişimi: proxy rotasyonu, IP seçimi ve kullanım istatistikleri üzerinde programatik kontrol.
- Kimlik doğrulama seçenekleri: IP beyaz listesi veya kullanıcı adı/parola doğrulaması desteği.
- Güvenilirlik ve çalışma süresi: kesintisiz proxy erişilebilirliği ve yüksek başarı oranları.
İş ilanı scraping'i için proxy türlerinin karşılaştırması
| Özellik | Veri merkezi proxy'leri | Residential proxy'ler | Mobil proxy'ler |
|---|---|---|---|
| Maliyet | Düşük | Orta-yüksek | Yüksek |
| Tespit riski | Yüksek | Düşük | Çok düşük |
| Hız | Çok yüksek | Orta | Orta |
| Güven puanı | Düşük | Yüksek | Çok yüksek |
| IP havuzu boyutu | Çok büyük | Büyük | Orta (büyüyor) |
| Geo-targeting | Temel (ülke/şehir) | Gelişmiş (ülke/ISP) | Gelişmiş (ülke/operatör) |
| En uygun | Düşük güvenlikli hedefler | HH.ru, Indeed, LinkedIn | LinkedIn (en zorlusu) |
