Temel Kazıma Süreci
Web kazıma üç adımda gerçekleşir: HTTP isteği, HTML ayrıştırma ve veri çıkarma. Python'da requests.get(url) ile sayfa HTML'i indirilir; BeautifulSoup bu HTML üzerinde soup.select('.fiyat') gibi CSS seçiciler veya XPath ifadeleriyle istenen elemanı bulur. Elde edilen veri CSV, JSON veya veritabanı formatına aktarılabilir. Bu temel akış, basit ve statik siteler için son derece etkilidir.
JavaScript ile Oluşturulan Sayfalar
Modern web uygulamalarının büyük çoğunluğu React, Vue veya Angular ile sayfa içeriğini tarayıcıda dinamik olarak oluşturur. Sunucudan gelen ham HTML anlamlı veri içermez; JavaScript çalıştıktan sonra DOM şekillenir. Playwright, Chrome/Firefox/WebKit motorlarını otomatize ederek sayfanın tam olarak render olmasını bekler ve ardından elemanlara erişimi sağlar. page.wait_for_selector() ve page.evaluate() gibi yöntemler dinamik içeriğe ulaşmanın anahtar adımlarıdır.
Hukuki ve Etik Çerçeve
Web kazıma yasal alanı gri zon olarak kalabilmektedir. robots.txt'e uymak etik minimum gerekliliktir. Hizmet şartları kazımayı yasaklıyorsa bu yasağa uymak önerilir; ABD mahkemelerinde hiQ v. LinkedIn kararı kamusal verilerin kazınmasını desteklemiş olsa da her durumda geçerli değildir. AB'de GDPR ve Türkiye'de KVKK, kişisel verinin toplanmasını ve işlenmesini katı kurallara bağlar; bu tür verilerin kazınmasında hukuki danışmanlık alınması şart olabilir.
Ölçekleme ve Anti-Engel Stratejileri
Scrapy, asenkron I/O ile aynı anda yüzlerce isteği paralel yönetebilir; middleware mimarisi ile proxy, cookie ve kimlik doğrulama kolayca eklenir. IP rotasyonu için Tor, veri merkezi proxy veya konut (residential) proxy hizmetleri kullanılabilir. CAPTCHA'lar için 2captcha veya Anti-Captcha gibi insan çözümlü hizmetler ya da yapay zeka tabanlı çözümler entegre edilebilir. Makul gecikmeler (1-5 saniye) ve user-agent rotasyonu temel kamuflaj önlemleridir.
AI Veri Toplama İçin Web Kazıma Araçları
Scrapy
Python tabanlı tam özellikli çerçeve; paralel kazıma, middleware ve veri boru hattı desteği.
Playwright / Selenium
JavaScript işlemeli dinamik sayfalar için tarayıcı otomasyon; SPA ve oturum gerektiren siteler.
Beautiful Soup
HTML ayrıştırma için hafif ve kolay kütüphane; küçük ölçekli projeler için ideal başlangıç.
Firecrawl / Jina
AI odaklı web kazıma API'si; temiz metin çıkarımı ve Markdown dönüşümü LLM eğitimi için.
Sıkça Sorulan Sorular
- check_circle Web kazıma yasal mı? Herkese açık kamusal veri için çoğunlukla evet; kişisel veri veya ToS ihlali içeriyorsa hayır. Her durum farklıdır ve hukuki değerlendirme gerektirir.
- check_circle robots.txt'e uymak zorunlu mu? Hukuki bir zorunluluk değildir ancak güçlü bir etik normdur; uymamak yasal riske yol açabilir ve bazı içtihat kararlarında aleyhte değerlendirilebilir.
- check_circle API varsa web kazıma yerine hangisi tercih edilmeli? Resmi API varsa her zaman daha güvenilir ve hukuki açıdan daha güvenlidir. API, oran sınırlarını açıkça belirtir ve yapılandırılmış veri döndürür.
- check_circle Python mı JavaScript mı web kazıma için daha iyidir? Python (Scrapy, Playwright) web kazımada daha güçlü bir ekosisteme sahiptir. JavaScript tarafında ise Puppeteer ve Cheerio popüler alternatiflerdir.