Web scraping, web sitelerinden verilerin otomatik çıkarımıdır: bir program sayfaları talep eder, dönen HTML veya JSON'u ayrıştırır ve fiyatlar veya listelemeler gibi belirli alanları yapılandırılmış bir formatta kaydeder. Web crawling'den farklıdır; web crawling, sayfaları keşfetmek ve dizinlemek için bağlantıları takip eder; scraping ise alınan sayfalardan belirli verileri çıkarır.
Temel bir scraper, hedef bir URL'ye HTTP isteği gönderir, ham HTML'yi (veya API tabanlı siteler için JSON'u) alır ve gereken belirli veri noktalarını ayrıştırır: ürün fiyatları, arama sıralamaları, iletişim bilgileri ve benzeri. Ölçeklendirilmiş olarak, scraping, belirli bir zaman diliminde bir IP adresinin yapabileceği istek sayısını sınırlayan oran limitleri ile karşılaşır.
Web Scraping Araçları Türleri
- Kod kütüphaneleri: HTTP istekleri gönderen ve HTML'yi ayrıştıran betikler, örneğin HTML ayrıştırıcı ile Python.
- Tarayıcı otomasyonu: Selenium veya Playwright gibi araçlar, JavaScript ile oluşturulmuş içerik dahil olmak üzere tam sayfayı yükler ve ardından işlenmiş DOM'dan veri çıkarır.
- Resmi API'ler: Bir site bir tane sunduğunda, doğrudan yapılandırılmış veri döner, HTML ayrıştırmasına gerek kalmaz.
Yaygın Anti-Scraping Önlemleri
Oran limitlerinin yanı sıra, siteler scraper'ları tespit etmek ve yavaşlatmak için başka yollar kullanır:
- CAPTCHA'lar, ziyaretçiden insan olduğunu kanıtlamasını ister.
- robots.txt dosyaları, otomatik tarayıcıların erişebileceği yolları belirtir.
- Honeypotlar: İnsan ziyaretçilerin asla görmediği veya tıklamadığı gizli bağlantılar, botları tanımlamak ve parmak izi çıkarmak için kullanılır.
- Cihaz parmak izi, bir tarayıcıyı veya cihazı özelliklerinden yeniden tanımlayabilir, hatta çerezler silindiğinde veya bir VPN kullanıldığında bile.