Gerçekten Çalışan Gemini Web Scraping (Kod + Kodsuz)

Son güncelleme: August 20, 2026
Gerçekten Çalışan Gemini Web Scraping (Kod + Kodsuz)

“Gemini web scraping” anlatımlarının çoğu, sanki tek bir kişi için yazılmış gibi duruyor: elinde zaten sanal ortamı olan, Pydantic şemaları ve async kütüphaneler hakkında net fikirlere sahip bir Python geliştiricisi için. Eğer siz buysanız harika — birazdan koda giriyoruz. Ama satış, pazarlama ya da e-ticaret operasyonlarında çalışıyor ve markdownify’ın ne yaptığını öğrenmeden birkaç web sayfasından düzenli veri çekmek istiyorsanız, yalnız değilsiniz.

Gemini, Google’ın çok modlu yapay zekâ ailesi ve web verisi çıkarmada hızla öne çıkan araçlardan biri haline geliyor. 2025 Stack Overflow Developer Survey, geliştiricilerin %84’ünün yapay zekâ araçlarını kullandığını ya da kullanmayı planladığını gösteriyor — LLM destekli scraping de bu dalganın önemli bir parçası. Ama tek bir URL üzerinde çalışan “gösterişli demo” ile sayfalama, alt sayfalar, bot engelleri ve dağınık HTML’yi ölçekli biçimde yöneten gerçek bir süreç arasında dağlar kadar fark var. Bu rehberde hem Python tabanlı (kodlu) hem de kodsuz yolları ele alacağız, gerçek token hesaplarıyla model seçiminden geçeceğiz, çok sayfalı scraping’i (diğer rehberlerin çoğunda atlanan kısmı) anlatacağız ve Gemini scraping’in nerede tökezlediğini açık açık konuşacağız. Sonunda, hangi yolun iş akışınıza uyduğunu ve hem geliştiricilerin hem de iş kullanıcılarının sık düştüğü tuzaklardan nasıl kaçınacağınızı bileceksiniz.

Gemini Web Scraping Nedir?

Gemini web scraping, bir web sayfasının içeriğini — HTML, Markdown ya da hatta bir ekran görüntüsünü — Google’ın Gemini AI modellerinden birine verip sayfayı yorumlamasını ve yapılandırılmış veri olarak geri döndürmesini ifade eder. CSS seçici yok. XPath yok. Bir sitenin yerleşimi biraz değiştiğinde bozulan kırılgan kurallar yok.

Temel iş akışı şöyle görünür:

  1. Sayfayı çekin (requests, headless browser veya bir Chrome uzantısıyla)
  2. İçeriği temizleyip dönüştürün (genelde HTML → Markdown, token maliyetini düşürmek için)
  3. İstediğiniz alanları tanımlayan bir şema ile Gemini’ye gönderin
  4. Yapılandırılmış JSON alın — doğrudan tablo, CRM ya da veritabanı için hazır

Bunu BeautifulSoup veya Selenium ile yapılan geleneksel scraping ile karşılaştırın: div.product-title > span.price gibi seçicileri tek tek yazarsınız ve sitenin gelecek hafta yeniden tasarlanmadığına dua edersiniz. Gemini ise sayfayı bir insan gibi okur — bağlamı kavrar, yerleşim değişikliklerine uyum sağlar ve karmaşık biçimlendirmeyi özel kurallar yazmadan yönetir.

Bir önemli nokta daha: Gemini doğası gereği çok modlu. Tek bir istekte metin, görsel, video, ses, PDF ve kodla çalışabiliyor. Bu da — HTML yerine ekran görüntüsü göndermek gibi — çoğu diğer LLM’in yaklaşamadığı scraping yöntemlerini mümkün kılıyor. Birazdan buna da geleceğiz.

Gemini Web Scraping İş Ekipleri İçin Neden Önemli?

Bir pazarlama yöneticisi ya da e-ticaret analisti neden LLM’ler ve web scraping ile ilgilensin diye düşünüyorsanız, kısa cevap şu: inanılmaz zaman kazandırır ve site güncellendi diye sürekli bozulmaz.

Web scraping yazılım pazarı 2025’te yaklaşık 1 milyar dolardan 2030’da 2 milyar doların üzerine çıkacak şekilde büyüyor — en hızlı büyüyen segment ise yapay zekâ destekli veri çıkarımı. Bu bir abartı değil; ekiplerin veri toplama biçiminde gerçek bir değişimi yansıtıyor.

Gemini scraping’in günlük iş süreçlerinde yer bulduğu alanlar şunlar:

Kullanım AlanıNeler ÇekiliyorKimler Faydalanır
Lead oluşturmaDizinler, LinkedIn (herkese açık), şirket sitelerinden iletişim bilgileriSatış, BDR ekipleri
Rakip fiyat takibiÜrün fiyatları, stok durumu, kampanyalarE-ticaret, fiyatlandırma ekipleri
Ürün kataloğu çıkarmaİsimler, teknik özellikler, görseller, yorumlarMerchandising, marketplace operasyonları
Emlak ilanlarıMülk detayları, fiyatlar, danışman bilgileriEmlakçılar, yatırımcılar
İçerik derlemeHaberler, blog yazıları, sosyal medya bahsetmeleriPazarlama, PR
İş piyasası araştırmasıPozisyonlar, maaşlar, lokasyonlarİK, işe alım

Pratik avantaj iki yönlüdür. Birincisi, ayrıştırma script’leri yazma, test etme ve hata ayıklama döngüsünden kurtulursunuz — model her seferinde sayfayı yeniden okur. İkincisi, bir site <div> değiştirince her defasında geliştirici çağırmanız gerekmez. Gemini’nin ücretsiz katmanı küçük işler için denemeyi neredeyse sıfır maliyetli hale getirir: Flash-Lite için günde yaklaşık 1.000 istek, Pro için 100 istek, kredi kartı gerektirmeden.

Hangi Gemini Modelini Seçmelisiniz? (Flash Lite vs. Flash vs. Pro)

Scraping için tüm Gemini modelleri aynı değil. Bu, her rehberde görmek istediğim pratik karşılaştırma; çünkü yanlış seviye seçmek ya gereksiz para harcatır ya da çöp veri üretir.

Mevcut üç Gemini 2.5 modeli de 1.048.576 token’lık bağlam penceresini paylaşıyor ve çok modlu. Farklar maliyet, hız ve karmaşık çıkarımı ne kadar iyi yaptıklarında.

ModelGiriş Maliyeti (1M token başına)Çıkış Maliyeti (1M token başına)En Uygun Olduğu AlanKarmaşık Şemalarda DoğrulukHız
Gemini 2.5 Flash Lite~$0.025~$0.10Basit, düz veri, yüksek hacim⚠️ İç içe/geçici alanlarda zorlanırEn hızlı
Gemini 2.5 Flash~$0.075~$0.625Çoğu scraping işi✅ Yapılandırılmış çıkarımda iyiHızlı
Gemini 2.5 Pro~$0.3125~$2.50Karmaşık iç içe şemalar, uç durumlar✅ En yüksek doğrulukEn yavaş

(Fiyatlar Gemini Developer API üzerinden alınmıştır. Batch API bu oranlarda %50 indirimlidir.)

Gemini 2.5 Flash Lite: Hızlı ve Ucuz, Ama Eksik Alanlara Dikkat

Flash Lite bütçe dostu seçenektir. Ürün adları, fiyatlar, tek seviyeli listeler gibi basit ve düz veriler için, özellikle yüksek hacimde idealdir. Ancak isteğe bağlı alanlar, zaman damgaları ve iç içe veriler konusunda bilinen sorunları vardır. Google forumundaki bir geliştirici, şema içinde zorunlu olmayan alanlar olduğunda Flash Lite’ın “kontrolden çıktığını” ve token sınırına kadar tekrar eden metinler ürettiğini bildirdi. Şemanız iki seviyeden fazla iç içe yapı içeriyorsa veya bazı sayfalarda eksik olabilecek alanlar varsa, Flash Lite hem token’ınızı hem sabrınızı tüketebilir.

Gemini 2.5 Flash: Çoğu Scraping İşinde En Dengeli Seçim

Gerçek dünyadaki neredeyse tüm scraping işleri için ilk başlayacağım model Flash olurdu. Yapılandırılmış çıkarımı iyi yönetir, sayfalama mantığını idare eder ve giriş maliyeti Flash Lite’a göre yaklaşık 3 kat daha yüksek olsa da doğruluk artışı buna değer. GPQA düzeyi akıl yürütme benchmark’larında Flash, Pro’ya oldukça yakındır; yani scraping’in gerçekten gerektirdiği çıkarım, normalleştirme ve düzleştirme işlerinde başarılıdır.

Gemini 2.5 Pro: Karmaşık Veri İçin Maksimum Doğruluk

Pro, hassas iş için kullanılan modeldir. Derin iç içe şemalar çıkarırken kullanın (örneğin: birden fazla varyant grubu olan ürün özellikleri; her grupta beden, renk ve fiyatlar), ya da uydurma alanların kabul edilemez olduğu durumlarda (hukuki, finansal, medikal veri). Giriş maliyeti kabaca Flash Lite’ın 12 katıdır; bu yüzden fiyatın değil doğruluğun daha önemli olduğu işler için saklayın.

Hesaplı Maliyet Örneği: 10.000 Ürün Sayfası

HTML’yi Markdown’a önceden dönüştürdüğünüzü varsayalım (ki bunu yapmalısınız — aşağıda anlatıyorum). Tipik bir ürün sayfası yaklaşık 20.000 token’lık ham HTML’den yaklaşık 4.000 token’lık Markdown’a düşer. Çıkış JSON’u sayfa başına yaklaşık 500 token’dır.

ModelGiriş Maliyeti (40M token)Çıkış Maliyeti (5M token)10K Sayfa İçin Toplam
Flash Lite$1.00$0.50~$1.50
Flash$3.00$3.13~$6.13
Pro$12.50$12.50~$25.00

Markdown ön işleme olmadan (ham HTML ile yaklaşık 200M token giriş), bu rakamlar 4–5 kat artar. Ön işleme, boru hattındaki en yüksek etkili optimizasyondur.

Kodlu ve Kodsuz: Gemini Web Scraping İçin İki Yol

Kavşaktasınız. Eğer özel bir boru hattı kuran geliştiriciyseniz, Python + Gemini API size maksimum kontrol sağlar. Eğer veriye hemen ihtiyacı olan ve terminale dokunmak istemeyen bir iş kullanıcısıysanız, kodsuz AI scraper sizi daha hızlı sonuca götürür.

KriterGemini API (Python)Thunderbit (Kodsuz)
Kurulum süresi15–30 dk (ortam, anahtar, kütüphaneler)< 1 dk (Chrome uzantısı kurulumu)
Kod gerekir mi?Evet (Python, Pydantic)Hayır
Sayfalama yönetimiElle scriptingYerleşik (tıklama ya da sonsuz kaydırma)
Alt sayfa zenginleştirmeSite başına özel kodTek tıkla "Scrape Subpages"
Token maliyeti yönetimiElle (HTML temizliği, model seçimi)Yapay zekâ motoru tarafından yönetilir
Dışa aktarma seçenekleriJSON/CSV script ileExcel, Google Sheets, Airtable, Notion
En uygun olduğu durumÖzel boru hattı geliştirenlerHemen veriye ihtiyacı olan iş kullanıcıları

Thunderbit, Thunderbit’te geliştirdiğimiz kodsuz seçenektir — Gemini, ChatGPT, Claude ve diğerlerini arka planda kullanarak alan öneren, iki tıkla scraping yapan ve veriyi istediğiniz araca aktaran bir Chrome uzantısı. Aşağıda iki yolu da anlatacağım.

Önceliği tablo olan kullanıcılar için Quadratic de bilmeye değer bir seçenek — Gemini destekli web scraping’i doğrudan tablonun içinde çalıştırabilen bir AI spreadsheet. Ancak başlangıcı belirli bir web sayfası olan iş akışlarında (ürün listeleri, dizinler, lead veritabanları) Thunderbit, kullanıcının zihinsel modeline daha yakın çalışır.

Adım Adım: Python ile Gemini Web Scraping

Bu bölüm geliştiriciler içindir. Kodsuz yolu istiyorsanız atlayabilirsiniz.

Başlamadan önce:

  • Zorluk seviyesi: Orta (Python bilgisi gerekir)
  • Gerekli süre: İlk scraping için yaklaşık 20–30 dakika
  • Gerekenler: Python 3.10+, ücretsiz bir Google AI Studio hesabı, hedef URL

1. Adım: Python Ortamını ve Gemini API Anahtarını Kurun

Bir proje klasörü ve sanal ortam oluşturun, ardından gerekli kütüphaneleri yükleyin:

mkdir gemini-scraper && cd gemini-scraper
python -m venv venv && source venv/bin/activate
pip install -U google-genai requests beautifulsoup4 markdownify pydantic

Önemli: 2026’da kullanmanız gereken tek doğru SDK google-genai’dir. Eski google-generativeai paketi 2025-11-30 tarihinde kullanım ömrünü tamamladı ve artık desteklenmiyor. Bir rehberde import google.generativeai as genai görürseniz, o kod güncel değildir.

Sonra Google AI Studio üzerinden API anahtarınızı alın. “Get API Key”e tıklayın, yeni bir anahtar oluşturun ve bunu bir çevre değişkeni olarak kaydedin:

export GEMINI_API_KEY="your-key-here"

Artık tüm bağımlılıkları kurulmuş, API anahtarı hazır çalışan bir Python ortamınız var.

2. Adım: Hedef Sayfanın HTML’ini Çekin

Sayfayı almak için requests kullanın. Bu örnekte bir ürün sayfası çekelim:

import requests

url = "https://example.com/product/widget-pro"
response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"}, timeout=30)
html = response.text

Site ağır JavaScript render’ı ya da bot koruması kullanıyorsa, requests.get() size boş bir kabuk veya 403 döndürebilir. Bunu sınırlamalar bölümünde ele alacağız — fakat birçok herkese açık site için bu yöntem gayet yeterlidir.

3. Adım: HTML’i Temizleyip Markdown’a Dönüştürün

Rehberlerin çoğunun bahsettiği ama sayı vermediği adım budur. Tipik bir ürün sayfasının ham HTML’i yaklaşık 20.000 token’dır. BeautifulSoup ile temizlik ve Markdown dönüşümünden sonra bunu yaklaşık 765–4.000 token aralığına indirirsiniz — 5–10 katlık bir düşüş gerçek para tasarrufu sağlar ve halüsinasyon riskini azaltır.

from bs4 import BeautifulSoup
from markdownify import markdownify

soup = BeautifulSoup(html, "html.parser")
main = soup.select_one("main") or soup  # sadece içerik alanını al
markdown_content = markdownify(str(main))

select_one("main") çağrısı başlık, alt bilgi, menü çubukları ve script’leri temizler — token israf eden ve modeli karıştıran tüm gürültüyü. Site <main> etiketi kullanmıyorsa .product-detail, #content ya da gerçek veriyi saran başka bir kapsayıcıyı deneyin.

Bu adımın sonunda, sayfanın anlamlı içeriğini içeren temiz bir Markdown dizeniz olmalı.

4. Adım: Veri Şemanızı Tanımlayın ve Gemini’ye Gönderin

Geri almak istediğiniz yapıyı Pydantic ile tanımlayın. google-genai SDK’sı, response_schema olarak doğrudan bir Pydantic BaseModel kabul eder:

from google import genai
from google.genai import types
from pydantic import BaseModel

class Product(BaseModel):
    name: str
    price: str
    sku: str | None = None
    description: str
    sizes: list[str] = []
    colors: list[str] = []

client = genai.Client()  # GEMINI_API_KEY değişkenini ortamdan okur

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=f"Bu sayfadan ürün detaylarını çıkar:\n\n{markdown_content}",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Product,
    ),
)

product = response.parsed
print(product)

Belgelendirilmiş hata kayıtlarında yer alan birkaç önemli nokta:

  • Gemini’ye gönderilen şemalarda Field(default=...) kullanmayın — API ValueError verir. Bunun yerine tür seviyesinde sku: str | None = None yazın.
  • İç içe yapıyı sığ tutun (en fazla 3 seviye). Derin iç içe şemalar Flash ve Flash Lite’ın döngüsel çıktı üretmesine veya kapatılmamış parantezler oluşturmasına neden olabilir.
  • Flash Lite kullanırken alanları zorunlu işaretleyin ve eksik alanlar için yok saymak yerine boş string gibi işaret değerleri kullanın — Flash Lite’ın isteğe bağlı alanları işlemesi güvenilir değildir.

Artık sayfadan yapılandırılmış veri içeren bir Product nesnesine sahipsiniz.

5. Adım: Çıktıyı Dışa Aktarın ve Saklayın

Sonucu JSON veya CSV olarak kaydedin:

import json

with open("products.json", "w") as f:
    json.dump(product.model_dump(), f, indent=2)

Google Sheets’e aktarmak için gspread kütüphanesini kullanabilirsiniz. Veritabanları için ise sonucu seçtiğiniz ORM’e serileştirin. Gemini’nin yapılandırılmış çıktısı, çoğu aşağı akış aracına doğrudan aktarılacak kadar temizdir.

Adım Adım: Kodsuz Gemini Web Scraping (Thunderbit ile)

Bu yol iş kullanıcıları içindir — ya da tek kullanımlık scraping script’leri yazmak istemeyen geliştiriciler için.

Başlamadan önce:

  • Zorluk seviyesi: Başlangıç
  • Gerekli süre: İlk scraping için yaklaşık 5 dakika
  • Gerekenler: Chrome tarayıcı, Thunderbit uzantısı (ücretsiz katman yeterli)

1. Adım: Thunderbit Chrome Uzantısını Kurun

Chrome Web Store sayfasına gidin ve “Add to Chrome”a tıklayın. E-postanızla kayıt olun — tüm süreç bir dakikadan kısa sürer. Yukarıdaki 15–30 dakikalık Python kurulumuyla kıyaslayınca fark açık.

2. Adım: Hedef Sayfayı Açın ve “AI Suggest Fields”e Tıklayın

Scrape etmek istediğiniz siteye gidin — ürün listesi, emlak dizini, lead veritabanı, ne olursa. Tarayıcınızdaki Thunderbit simgesine tıklayın ve ardından “AI Suggest Fields” seçeneğine basın.

Thunderbit’in yapay zekâsı sayfayı okur ve sütun adları ile veri tiplerini otomatik önerir — örneğin “Ürün Adı,” “Fiyat,” “Puan,” “Görsel URL’si.” Sütun adlarını düzenleyebilir, gereksiz alanları kaldırabilir veya her sütun için özel AI istemleri ekleyebilirsiniz (örneğin “High/Medium/Low olarak sınıflandır” ya da “İngilizceye çevir”).

Tek bir satır scrape etmeden önce, yapılandırdığınız sütunlarla birlikte bir tablo önizlemesi görürsünüz.

3. Adım: “Scrape”e Tıklayın ve Sonuçları Kontrol Edin

Tek tık. Thunderbit sayfalama işlemini yönetir — hem tıklamalı “Next” düğmelerini hem de sonsuz kaydırmayı — ve veriyi yapılandırılmış bir tabloya çıkarır. Şunlar arasında seçim yapabilirsiniz:

  • Cloud Scraping: Daha hızlıdır, aynı anda 50 sayfaya kadar işler. Herkese açık sitelerde çalışır.
  • Browser Scraping: Giriş yapmış tarayıcı sekmenizde çalışır. Kimlik doğrulama gerektiren siteler için kullanın (CRM’ler, erişim kontrollü dizinler, iç araçlar).

Sonuçlar, uzantının yan panelinde doğrudan bir tabloda görünür. Dışa aktarmadan önce bariz hataları kontrol edin.

4. Adım: Excel, Google Sheets, Airtable veya Notion’a Aktarın

Dışa aktarma düğmesine tıklayın ve formatınızı seçin. Thunderbit veriyi Excel, Google Sheets, Airtable ve Notion’a ücretsiz olarak aktarır — ödeme duvarı yok. Görsel alanları doğrudan Notion ve Airtable görsel kütüphanelerine yüklenir; ürün fotoğrafları veya profil görselleri çekiyorsanız güzel bir artı.

JSON ayrıştırma yok. Script yok. Veri hemen kullanılmaya hazır.

Gemini ile Çok Sayfalı ve Alt Sayfalı Scraping

Rehberlerin çoğu sessizce tek bir URL’den sonra biter. Gerçek scraping işleri bitmez.

Sayfalama ve detay alt sayfaları olan 500 ürün sayfasını çekmek bir iştir — tek URL demosu ile gerçek operasyon arasındaki boşluk ise çok büyüktür.

Gemini API ile Sayfalama Yönetimi (Kodlu Yaklaşım)

Sayfa numaralı URL’ler için (en yaygın desen), boş sonuç gelene kadar sayfaları döngüye alın:

import time

all_products = []
for page in range(1, 101):  # en fazla 100 sayfa
    url = f"https://example.com/products?page={page}"
    md = fetch_clean(url)  # yukarıdaki HTML→Markdown fonksiyonunuz
    
    response = client.models.generate_content(
        model="gemini-2.5-flash-lite",  # liste sayfaları için ucuz
        contents=f"Ürün adlarını ve URL’lerini çıkar:\n\n{md}",
        config=types.GenerateContentConfig(
            response_mime_type="application/json",
            response_schema=list[ListingItem],
        ),
    )
    items = response.parsed
    if not items:
        break
    all_products.extend(items)
    time.sleep(4)  # ücretsiz katman hız limitlerine uyun

Cursor tabanlı veya sonsuz kaydırmalı sitelerde, ön yüzün çağırdığı XHR endpoint’ini yakalamanız gerekir (tarayıcınızın Network sekmesine bakın) ve doğrudan o endpoint üzerinde döngü kurun. Yeniden render etmekten daha ucuzdur; alanların LLM ile temizlenmesi gerekiyorsa yalnızca ürünleri Gemini’ye gönderirsiniz.

Burada token maliyetlerini dikkatle izleyin — her sayfa faturayı büyütür. Basit liste sayfaları için Flash Lite kullanın, detay çıkarımı gerektiğinde Flash’a geçin.

Daha Zengin Veri İçin Alt Sayfa Scraping (Kodlu Yaklaşım)

Klasik iki aşamalı desen: 1. aşama liste sayfasından URL’leri toplar, 2. aşama her detay sayfasını ziyaret edip daha zengin veriyi çeker.

# 1. aşama: ucuz Flash Lite ile URL’leri topla
class Listing(BaseModel):
    product_urls: list[str]

listing = client.models.generate_content(
    model="gemini-2.5-flash-lite",
    contents=f"Ürün URL’lerini çıkar:\n{listing_md}",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Listing,
    ),
).parsed

# 2. aşama: Flash ile detayları çek
class ProductDetail(BaseModel):
    name: str
    price: str
    specs: dict[str, str]
    reviews: list[str]

for url in listing.product_urls:
    md = fetch_clean(url)
    detail = client.models.generate_content(
        model="gemini-2.5-flash",
        contents=f"Ürün detaylarını çıkar:\n{md}",
        config=types.GenerateContentConfig(
            response_mime_type="application/json",
            response_schema=ProductDetail,
        ),
    ).parsed
    # detayları kaydet...
    time.sleep(0.5)

Bu çalışır, ama epey fazla altyapı işi çıkarır: URL çoğaltma önleme, hata yönetimi, hız sınırı, yeniden deneme mantığı, şema değişirse yeniden fetch etmeyi gerektirmemek için ham HTML’i önbelleğe alma. 50 sayfa için idare eder. 5.000 sayfa için altyapı kuruyorsunuz.

Kodsuz Alternatif: Thunderbit’in Yerleşik Sayfalama ve Alt Sayfa Scraping Özelliği

Thunderbit, hem tıklamalı hem de sonsuz kaydırmalı sayfalamayı otomatik yönetir — döngü script’i yazmanız gerekmez. Alt sayfa zenginleştirmesi için “Scrape Subpages” özelliği, listenizdeki her detay sayfasını ziyaret eder ve orijinal tabloyu daha derin alanlarla zenginleştirir. Tek tık, tek script değil.

Cloud scraping modu aynı anda 50 sayfaya kadar işler; bu da ürün kataloğu veya emlak dizini gibi ölçekli işlerde gerçekten fark yaratır. Python döngüleri ve yeniden deneme mantığıyla uğraşmak istemeyenler için bu en pratik seçimdir. (Web sitelerinden Excel’e veri çekme konusunda ayrıca bir rehberimiz de var.)

Ekran Görüntüsü ile Scraping: Gemini’nin Çok Modlu Kestirme Yolu

Rehberlerin çoğunun tamamen atladığı bir yöntem var: ham HTML yerine web sayfasının bir ekran görüntüsünü Gemini’nin vision API’sine göndermek. Bir geliştirici, tek bir ekran görüntüsünün sadece yaklaşık 258 token tuttuğunu bildirdi — temizlenmiş Markdown için bile bu binlerce token’a kıyasla çok büyük bir fark. Basit çıkarımlar için ciddi bir maliyet avantajı.

Gemini Vision API ile Web Scraping Nasıl Yapılır?

Playwright ile bir ekran görüntüsü alın, kodlayın ve Gemini’ye gönderin:

from playwright.sync_api import sync_playwright
from google import genai
from google.genai import types
from pydantic import BaseModel

class Product(BaseModel):
    title: str
    price: str

with sync_playwright() as p:
    page = p.chromium.launch().new_page()
    page.goto("https://example.com/product/widget-pro")
    page.wait_for_load_state("networkidle")
    png_bytes = page.screenshot(full_page=False)  # sadece üst görünüm

client = genai.Client()
resp = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        {"inline_data": {"mime_type": "image/png", "data": png_bytes}},
        "Ürün başlığını ve fiyatını JSON olarak çıkar.",
    ],
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Product,
    ),
)
print(resp.parsed)

Google’ın görsel token dokümantasyonuna göre, her iki boyutu da 384 piksel veya altında olan bir görsel 258 token tutar. Daha büyük görseller 768×768 parçacıklara ayrılır ve her parça 258 token olarak ücretlendirilir. Kısa bir üst görünüm ekran görüntüsü (258–1.600 token), ham HTML’i rahatça geçebilir — ama çok uzun tam sayfa bir ekran görüntüsü (~5.000 token), temiz Markdown’a (~765–1.200 token) yenilebilir.

Ekran Görüntüsü Scraping’in Sınırlamaları

  • Yoğun tablolar için daha düşük hassasiyet: Çok sütunlu düzenler, küçük yazılar ve üst üste binen öğeler eksik okumalara yol açar — halüsinasyon değil, eksik etiketler ve yanlış hizalanmış başlıklar.
  • Bağlantıları takip edemez: Vision metin döndürür, tıklanabilir bağlantılar değil. Sayfalama yok, alt sayfa zenginleştirme yok.
  • Çözünürlük sınırı: Yaklaşık 10 px’den küçük metinler sıkça yanlış okunur. Google, uzun kenarı yaklaşık 1.568 px’e kadar küçültür.
  • Yakalama yükü: Playwright başlatma + networkidle bekleme her sayfada 2–5 saniye sürer; ölçek büyüdükçe bu birikir.

Ekran görüntüsü scraping, JS ağırlıklı sayfalar, bot engelli siteler (requests.get() 403 döndürürken tarayıcıda düzgün açılanlar) ve verinin grafik ya da görsellerin içine gömülü olduğu sayfalar için çok uygundur. Uzun ve metin ağırlıklı sayfalarda ise Markdown hâlâ daha iyi seçimdir.

Thunderbit’in görsel ve PDF scraping özelliği benzer bir AI-vision yaklaşımı kullanır — bir görsel veya PDF yükleyin, size yapılandırılmış tabloyu döndürsün; ekran görüntüsü script’i ya da base64 uğraşı gerekmez. (Ayrıca bkz: görselleri Excel’e dönüştürme.)

Gemini Web Scraping Ne Zaman Başarısız Olur? (Ve Ne Yapmalı?)

Gemini bir çıkarım motorudur, bir getirme motoru değil. Sayfa içeriğini Gemini’ye ulaştıramıyorsanız, işe yaramaz. Nokta.

Bu yaklaşımın tamamen bozulduğu birkaç yaygın senaryo var; çoğu rehber bunu sonradan eklenmiş bir ayrıntı gibi geçiştirir. Ben doğrudan söylemeyi tercih ederim.

SınırlamaNe OlurÇözüm
Anti-bot / CloudflareAPI istekleri engellenir; requests.get() 403 veya doğrulama sayfası döndürürTLS parmak izi rotasyonu olan proxy’ler kullanın veya tarayıcı tabanlı araçlara geçin (Thunderbit’in browser scraping modu giriş yapılmış oturumunuzu kullanır)
Token pencere sınırlarıBüyük sayfalar kullanılabilir bağlamı aşar (~200K–300K, teknik olarak 1M desteklense de güvenilir çıkarım için bu aralık daha gerçekçidir)HTML→Markdown temizliği yapın, sayfayı bölün veya ekran görüntüsü kullanın
Görsel içerikte halüsinasyonGemini gerçek görsel içeriği yerine alt metin ya da açıklamalardan tahmin yürütürÇıktıları doğrulayın; görsel veri için vision API’yi açıkça kullanın; grounding doğrulayıcılar ekleyin
API hız limitleriÖlçekte kısıtlanır — ücretsiz katmanda Pro için yaklaşık 100 RPD, Flash Lite için yaklaşık 1.000 RPDKuyruk yönetimi, toplu işleme (%50 indirim) veya hazır araçlara geçiş
Tutarsız çıkarım (Lite modeller)İsteğe bağlı alanlar, zaman damgaları ve iç içe veri kaçırılır ya da uydurulurFlash/Pro’ya yükseltin veya açık şema kısıtları ekleyin
Korumalı siteler (LinkedIn vb.)Hata ya da boş veri dönerAktif oturumla tarayıcı tabanlı scraping kullanın (Thunderbit bunu destekler); kullanım şartlarına uyun

Bunlardan birkaçını biraz açmak gerekiyor.

Anti-bot artık aktif olarak LLM farkındalığına sahip. Cloudflare, Temmuz 2025 itibarıyla AI crawler’larını varsayılan olarak engelliyor; ilk beş ayda 416 milyar AI bot isteği engellendi. Datadome 2025’te LLM’ye özel tespiti devreye aldı ve LLM bot trafiğinde dört kat artış gördü. Düz bir requests.get() + Gemini, Datadome korumalı siteler karşısında neredeyse ölüdür. Sorun IP değil, parmak izidir — TLS parmak izi “Python requests” diye bağırıyorsa IP değiştirmek tek başına bir şeyi çözmez.

Halüsinasyon ince ince gelir. Yardımcı olmaya ayarlı LLM’ler, isteğe bağlı alanları null döndürmek yerine makul görünen uydurmalarla doldurur. Modellerin bir ürünün markasını URL slug’ından tahmin ettiğini, para birimini TLD’den çıkardığını ve skeleton loader’lardaki görünüşte mantıklı ama sahte yorum sayılarını yazdığını gördüm. Çözüm katmanı: katı Pydantic şemaları, doğrulama geri bildirimiyle yeniden deneme döngüleri, çıkarılan değerlerin gerçekten kaynak HTML’de geçtiğini kontrol eden grounding doğrulayıcılar ve iki aşamalı çıkarım (Flash çıkarır, Pro örnekleri doğrular).

1M bağlam penceresi, gerçekten 1M gibi kullanılamaz. Chroma ve benzerlerinin araştırmaları, akıl yürütme kalitesinin token sınırına çok gelmeden düşmeye başladığını gösteriyor. Yapılandırılmış çıkarım için yaklaşık 200K–300K token’ı pratik üst sınır gibi düşünün.

Karar Ağacı: Hangi Aracı Kullanmalısınız?

  • Düşük hacim + basit sayfalar + geliştirici → Gemini API ücretsiz katman + Python
  • Orta hacim + karmaşık şemalar + geliştirici → ücretli Gemini 2.5 Flash + Python + yapılandırılmış çıktı + ön işleme
  • Her hacim + geliştirici olmayan + giriş duvarlı veya yoğun sayfalama içeren sitelerThunderbit
  • Çok yüksek hacim + yoğun anti-bot + kritik görev → Yönetilen scraping altyapısı (proxy servisleri) + çıkarım katmanı olarak Gemini

Gemini Web Scraping: Zaman ve Para Kazandıran İpuçları

İster Python yazın ister düğmelere tıklayın, bunlar can sıkıntısını azaltır.

  1. Gemini’ye göndermeden önce HTML’i her zaman Markdown’a dönüştürün. 5–10 kat token tasarrufu yaygındır; BeautifulSoup ile ön kırpma yaparsanız %95’e kadar tasarruf mümkündür.
  2. Sadece google-genai kullanın. Kullanım ömrü bitmiş google-generativeai paketini kullanmayın — EOL.
  3. Flash Lite’a yalnızca düz şemalarla başlayın. İç içe yapı veya isteğe bağlı alanlar göründüğü anda Flash’a geçin.
  4. Gemini’ye verdiğiniz Pydantic şemalarda Field(default=...) kullanmayın. Tür seviyesinde sku: str | None = None yazın.
  5. Pydantic + response_schema kritik önemdedir — hem sözleşme hem de halüsinasyon güvenlik bariyeridir.
  6. 1.000 sayfayı aşan işler için Batch API kullanın — %50 indirimlidir ve gerçek zamanlı RPM’i tüketmez.
  7. Yeni bir çıkarıcıyı ölçeklemeden önce 10–50 satırlık rastgele bir örneği elle doğrulayın. Doğruluk sapması, siz bakana kadar görünmez.
  8. Ham HTML’i diske önbelleğe alın — şema değişiklikleri için tekrar fetch etmeye gerek kalmasın.
  9. Her satıra kaynak URL’si ekleyin — böylece tüm işi yeniden çalıştırmadan tek tek sayfaları yeniden tarayabilirsiniz.
  10. Kodsuz kullanıcılar için: Thunderbit’te sütun başına özel AI istemleri kullanın — prompt mühendisliğini tablo katmanına taşıyın; sütun bazında çeviri, sınıflandırma, özetleme yapın.

Bir ipucu daha: ücretsiz katmanı üretime göndermeyin. Limitler Aralık 2025’te %50–80 azaltıldı ve bir daha uyarı olmadan düşürülebilir.

Kapanış

Tek URL’lik bir Gemini demosu ile üretim boru hattı arasındaki mesafe, çoğu rehberin anlattığından daha büyüktür.

Python + Gemini API yolu, geliştiricilere model seçimi, ön işleme, sayfalama ve şema tasarımı üzerinde tam kontrol verir. Kodsuz yol — Thunderbit gibi araçlar — iş kullanıcılarına terminale dokunmadan aynı yapılandırılmış veri çıkarımını sağlar.

Benim çıkaracağım dersler şunlar:

  • Model seçimi önemlidir. Hacim için Flash Lite, denge için Flash, karmaşıklık için Pro. En ucuz seçeneği varsayılan yapıp verinizin neden yanlış çıktığını merak etmeyin.
  • Çok sayfalı ve alt sayfalı scraping, rehberlerin tökezlediği yerdir — gerçek iş de orada olur. Burada anlattığımız iki yol bu açığı kapatır.
  • Dürüst sınırlamalar zaman kazandırır. Bir site API isteklerini engelliyorsa, hiçbir prompt mühendisliği onu kurtarmaz. İş için doğru aracı seçin, en parlak olanı değil.
  • HTML’i Markdown’a ön işlemek, en yüksek etkili optimizasyondur — maliyeti %75+ düşürür ve halüsinasyonu azaltır.

Kodsuz yolu denemek isterseniz, Thunderbit’in ücretsiz katmanı ile birkaç sayfa scrape edip sonucu kendiniz görebilirsiniz. Kod yazmayı tercih ediyorsanız, Gemini’nin ücretsiz API katmanı öğleden sonra bir boru hattı prototipi kurmak için yeterlidir. Her iki durumda da, kopyala-yapıştırdan çok daha hızlı yapılandırılmış veri elde edersiniz. Web sitelerinden Excel’e veri çekme veya en iyi AI web scraper’lar hakkında daha fazlası için blogumuzda bu konuları ayrıntılı işledik.

AI Web Scraping için Thunderbit’i Deneyin Get Started Free

SSS

Gemini ile web scraping ne kadar tutar?

Gemini API’nin ücretsiz katmanı, erken 2026 itibarıyla yaklaşık olarak Pro için günde 100 istek, Flash için 500 istek ve Flash Lite için 1.000 istek sunar (bu limitler Aralık 2025’te düşürüldü). Ücretli katmanda, 10.000 ürün sayfasını scrape etmek; HTML’yi önce Markdown’a dönüştürdüğünüz varsayımıyla, Flash Lite ile yaklaşık 1,50 $, Flash ile 6 $, Pro ile 25 $ tutar. Ön işleme yapmazsanız maliyet 4–5 kat artar. Batch API, gerçek zamanlı olmayan işler için %50 indirim sunar.

Gemini, giriş yapmayı gerektiren siteleri scrape edebilir mi?

Gemini’nin API’si tek başına sitelere giriş yapamaz — sadece gönderdiğiniz içeriği işler. HTML’i kendi kimlik doğrulanmış oturumunuzla kendiniz çekmeniz gerekir (örneğin headless browser ve kayıtlı çerezlerle). Thunderbit’in Browser Scraping modu bunu doğal olarak yönetir: giriş yaptığınız Chrome sekmenizde çalışır; tarayıcınızda görebildiğiniz her siteyi Thunderbit scrape edebilir.

Gemini web scraping yasal mı?

Yasal durum; sitenin kullanım şartlarına, veri türüne ve bulunduğunuz ülkeye bağlıdır. ABD’de, hiQ v. LinkedIn ve Meta v. Bright Data sonrası, giriş yapmadan herkese açık veriyi scrape etmek genellikle izin verilebilir kabul edilir — ancak her olay kendi özel koşullarına bağlıdır. Giriş duvarının arkasındaki verileri çekmek daha yüksek hukuki risk taşır. AB’de yaşayanların kişisel verileri, sitenin herkese açık olup olmamasından bağımsız olarak GDPR kapsamındadır. Her zaman robots.txt ve kullanım şartlarına uyun; hukuka uygun bir dayanak olmadan kişisel veri scrape etmeyin.

Dinamik ve ağır JavaScript kullanan siteleri Gemini ile scrape edebilir miyim?

Evet, ama önce JavaScript’i render etmeniz gerekir — ya headless browser (Playwright, Puppeteer) ile ya da sitenin API endpoint’lerini doğrudan yakalayarak. Render edilmiş HTML’yi aldıktan sonra temizleyip her zamanki gibi Gemini’ye gönderirsiniz. Alternatif olarak, Gemini’nin vision API’si ile ekran görüntüsü scraping JS render’ını tamamen atlatır — eğer tarayıcıda görünüyorsa, Gemini de görebilir. Thunderbit, hem Cloud hem de Browser scraping modlarında JS ile render edilen sayfaları otomatik olarak yönetir.

Scraping için Gemini kullanmak ile Thunderbit gibi özel bir scraping aracı kullanmak arasındaki fark nedir?

Gemini bir çıkarım motorudur — içeriği yorumlar ve yapılandırılmış veri döndürür. Web sitelerini ziyaret etmez, sayfalama yönetmez, kimlik doğrulama yapmaz veya veriyi tabloya aktarmak gibi işleri üstlenmez. İçeriği Gemini’ye ulaştıracak bir şeye ve çıktıyı işe yarar hale getirecek bir araca yine ihtiyacınız vardır. Thunderbit gibi özel araçlar; getirme, render etme, AI ile çıkarım, sayfalama, alt sayfa zenginleştirme ve dışa aktarmayı tek pakette birleştirir — ek kurgu gerekmez.

Daha Fazla Bilgi

Shuai Guan
Shuai Guan
Thunderbit CEO’su | AI Veri Otomasyonu Uzmanı Shuai Guan, Thunderbit’in CEO’su ve University of Michigan Mühendislik mezunudur. Teknoloji ve SaaS mimarisi alanındaki yaklaşık on yıllık deneyiminden güç alarak, karmaşık yapay zeka modellerini pratik, kod yazmadan kullanılabilen veri çıkarma araçlarına dönüştürme konusunda uzmanlaşmıştır. Bu blogda, daha akıllı ve veriye dayalı iş akışları kurmanıza yardımcı olmak için web kazıma ve otomasyon stratejileri üzerine filtresiz, sahada sınanmış içgörüler paylaşıyor. Veri iş akışlarını optimize etmediği zamanlarda ise aynı detay odaklı yaklaşımını fotoğrafçılık tutkusuna da yansıtıyor.
İçindekiler
Thunderbit · AI web veri ajanı

Herhangi bir sayfadan 1 tık içinde veri çıkar

250.000+ kullanıcı tarafından güveniliyor
ücretsiz plan mevcut
Web sayfasından tabloya
İhtiyacını anlat — Thunderbit’in AI Ajanı bunu çeker ve Excel, Google Sheets, Airtable veya Notion’a aktarır. Başlamak ücretsiz.
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week