HTML kazımak bazen gereksiz zordur. Çünkü modern sitelerin çoğu, gösterdiği veriyi arka planda bir JSON API'den çeker. O API'yi bulursanız, temiz veriyi doğrudan alırsınız — HTML ayrıştırmaya gerek kalmaz.
Gizli API nasıl bulunur?
- Sitede tarayıcıyı açın, F12 ile geliştirici araçlarına girin.
- "Network" (Ağ) sekmesine geçin ve "Fetch/XHR" filtresini seçin.
- Sayfayı yenileyin veya bir 'daha fazla yükle' butonuna basın.
- Listede JSON döndüren istekleri inceleyin — veriniz genelde oradadır.
Bulunan API'yi kullanmak
İstediğiniz veriyi döndüren adresi bulunca, onu doğrudan requests ile çağırırsınız:
import requests
url = "https://site.com/api/urunler?sayfa=1"
headers = {"User-Agent": "Mozilla/5.0"}
veri = requests.get(url, headers=headers, timeout=15).json()
for urun in veri["sonuclar"]:
print(urun["ad"], "-", urun["fiyat"])
💡
Sonuç zaten JSON olduğu için .json() ile anında Python sözlüğüne çevrilir. BeautifulSoup'a, seçicilere, HTML'e hiç gerek kalmaz.
Avantajları
- Çok daha hızlı ve az kod
- Sayfa tasarımı değişse bile API genelde sabit kalır
- Sayfalama, filtreleme çoğu zaman URL parametreleriyle hazır gelir
Bir sonraki kazıma projenizde önce Network sekmesine bakın — çoğu zaman HTML'le hiç uğraşmadan işi bitirirsiniz. Bu, deneyimli kazıyıcıların ilk yaptığı şeydir.