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?

  1. Sitede tarayıcıyı açın, F12 ile geliştirici araçlarına girin.
  2. "Network" (Ağ) sekmesine geçin ve "Fetch/XHR" filtresini seçin.
  3. Sayfayı yenileyin veya bir 'daha fazla yükle' butonuna basın.
  4. 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.