Bloga geri dön

Restoran Menüleri ve Yemek Teslimat Fiyatlarının Parse Edilmesi: Veri Kaybı Olmadan Agregat Engellerinin Aşılması

Büyük yemek siparişi platformlarından menü ve fiyat verilerini otomatik olarak nasıl toplayacağımızı, engellemeler olmadan, araç seçiminden proxy ayarlarına kadar inceliyoruz.

📅1 Temmuz 2026
```html

Yandex.Eda, Delivery Club, SberMarket ve onlarca bölgesel teslimat agregatörü - pazarlamacılar, analistler ve restoran işletmecileri için gerçek bir veri hazinesi. Ancak fiyatları ve menü pozisyonlarını sistematik olarak toplamaya başladığınızda, hizmetler isteklerinizi engellemeye başlar. Bu makalede, menü ve teslimat fiyatlarını doğru bir şekilde nasıl parçalayıcı ile organize edeceğimizi, hangi araçları kullanacağımızı ve proxy'lerin engellemeleri nasıl önlediğini inceleyeceğiz.

Restoran menülerini ve teslimat fiyatlarını parçalayıcı ile neden toplamalıyız

Rusya'daki yemek teslimat pazarı, e-ticaretin en dinamik segmentlerinden biridir. Yemek fiyatları, menü içerikleri ve teslimat koşulları neredeyse her gün değişiyor. Bu değişiklikleri manuel olarak takip etmek, onlarca rakip veya yüzlerce pozisyon söz konusu olduğunda imkansızdır. İşte bu noktada otomatik veri toplama devreye giriyor.

İşte menü ve fiyatları parçalayıcı ile kullananlar:

  • Restoran ve kafe sahipleri - kendi bölgelerindeki rakiplerin fiyatlarını takip ederek kendi fiyatlandırmalarını hızlı bir şekilde ayarlıyorlar.
  • Restoran zincirlerinin pazarlamacıları - rakiplerin hangi menü pozisyonlarını kampanyalar ve özel teklifler aracılığıyla tanıttığını analiz ediyorlar.
  • HoReCa pazar analistleri - farklı şehirlerde ve bölgelerde yemek kategorilerinin ortalama fiyatları hakkında raporlar hazırlıyorlar.
  • Agregatör girişimleri - kendi katalogları için menü ve fiyatlarla restoran veritabanı topluyorlar.
  • Yatırımcılar ve danışmanlar - yeni bir işletme veya franchise açmadan önce rekabet ortamını değerlendiriyorlar.
  • Uygulama geliştiricileri - kalori hesaplama veya beslenme planlama uygulamaları için yemek veritabanları oluşturuyorlar.

Eğer restoran sektöründe çalışıyorsanız veya bu alanda analiz yapıyorsanız, rakip fiyatlarının düzenli takibi bir lüks değil, bir gerekliliktir. Popüler bir yemekte 30-50 rublelik bir fark, sipariş dönüşümünü doğrudan etkileyebilir. Ve otomasyon olmadan, veri toplama işlemini ayarlayanların her zaman bir adım gerisinde kalırsınız.

Teslimat agregatörlerinden hangi veriler toplanır

Parçalayıcıyı ayarlamadan önce, hangi verilerin gerekli olduğunu anlamak önemlidir. Teslimat agregatörleri birkaç bilgi katmanı içerir ve her biri farklı görevler için faydalıdır.

Veri Türü Neleri içerir Kime faydalı
Menü ve pozisyonlar Yemek adları, açıklamalar, içerik, ağırlık, KBDH Uygulama geliştiricileri, diyetisyenler
Yemek fiyatları Mevcut fiyat, indirimli fiyat, değişim geçmişi Restoran sahipleri, pazarlamacılar
Teslimat koşulları Teslimat ücreti, minimum sipariş tutarı, teslimat süresi Analistler, girişimler
Kampanyalar ve özel teklifler İndirimler, kombo, promosyon yemekleri, mevsimsel teklifler Pazarlamacılar, rekabet istihbaratı
Puanlar ve yorumlar Kuruluşların puanları, yorum sayısı, kalite etiketleri Yatırımcılar, danışmanlar
Coğrafi veriler Adresler, teslimat bölgeleri, varlık alanları Pazar analistleri, franchise'lar

Fiyatların dinamik olarak izlenmesi özel bir değer taşır: birkaç ay boyunca günde bir kez veri toplarsanız, rakiplerin fiyatlandırma kalıplarını görebilirsiniz - ne zaman fiyatları yükselttiklerini, ne zaman kampanya başlattıklarını ve dış olaylara (tatiller, spor etkinlikleri, kötü hava) nasıl tepki verdiklerini.

Yandex.Eda, Delivery Club ve diğer agregatörlerin koruma özellikleri

Büyük teslimat agregatörleri, verilerini otomatik toplama karşı aktif olarak koruyor. Bunun nedeni açıktır: restoran veritabanları ve güncel fiyatlar, onların rekabet avantajıdır. Parçalayıcıyı ayarlamadan önce, hangi koruma mekanizmaları ile karşılaşacağınızı anlamanız gerekir.

Yandex.Eda

Birden fazla koruma katmanı kullanıyor. Öncelikle, coğrafi bağlama aktif olarak başvuruluyor: menü içeriği ve fiyatlar, IP adresinize bağlı olarak görüntüleniyor - eğer IP Moskova'dan ise, Moskova restoranlarını görüyorsunuz. İkincisi, site React üzerinde SPA (Tek Sayfa Uygulaması) olarak çalışıyor, yani veriler API istekleri aracılığıyla yükleniyor, HTML'ye gömülü değil. Üçüncüsü, şüpheli bir etkinlik olduğunda Yandex SmartCaptcha devreye giriyor. Tek bir IP'den sık istekler geldiğinde, siteye erişiminiz engelleniyor.

Delivery Club (SberMarket)

Benzer bir mimari: veriler iç API aracılığıyla sağlanıyor, statik HTML üzerinden değil. Hizmet, davranış kalıplarını analiz ediyor: istekler çok hızlı veya duraksız gelirse - engelleme. Ayrıca User-Agent ve istek başlıklarının analizi yapılıyor. Standart dışı başlıklar hemen şüphe uyandırıyor.

Bölgesel agregatörler

Chibbis, Goloso gibi hizmetler ve bölgesel agregatörler genellikle daha zayıf bir korumaya sahiptir. Bazıları, standart araçlarla parçalanabilen basit HTML sayfaları kullanır. Ancak burada da sık isteklerde IP engellemesi standart bir uygulamadır.

Teslimat agregatörlerinde parçalayıcıların engellenmesinin ana mekanizmaları:

  • İstek sınırını aşma durumunda IP engellemesi (rate limiting)
  • Coğrafi engelleme - farklı IP'ler için farklı içerik gösterimi
  • User-Agent ve HTTP başlıklarının analizi
  • Şüpheli etkinlik durumunda CAPTCHA
  • Verilerin JavaScript ile render edilmesi (SPA mimarisi)
  • Davranış analizi: tıklama hızı, kaydırma, duraklamalar

Kod olmadan ve kod ile parçalayıcı araçlar

İyi haber: restoran menülerini parçalayıcı ile toplamak için programlama bilmek gerekmez. Çoğu görevi yerine getiren hazır no-code çözümler mevcuttur. Ancak Yandex.Eda gibi SPA siteleri ile çalışmak için daha ciddi araçlar gerekecektir.

No-code araçlar (programlama olmadan)

Octoparse - en popüler görsel parçalayıcılardan biridir. Sayfa öğelerine tıklayarak veri toplama senaryosu oluşturmanıza olanak tanır, kod yazmadan. IP döngüsü ile bulut moduna sahiptir. Basit yapıya sahip sitelerden menü toplamak için uygundur.

ParseHub - benzer bir görsel arayüze sahip bir araç. JavaScript sayfaları ile çalışabilir, bu da onu modern agregatörler için uygulanabilir kılar. Proxy desteği vardır.

Apify - popüler siteler için hazır "aktörler" (hazır parçalayıcılar) sunan bir platform. Bazı teslimat agregatörleri için zaten hazır çözümler bulunmaktadır. Kodu olmadan web arayüzü üzerinden başlatılabilir.

Kod ile araçlar (geliştiriciler için)

Python + Requests + BeautifulSoup - statik sayfaları parçalayıcı için klasik bir kombinasyon. Hızlı, kolay, ancak JavaScript ile render edilen içeriklerle başa çıkamaz.

Python + Selenium veya Playwright - gerçek bir tarayıcıyı (Chrome/Firefox) yönetir, bu nedenle SPA siteleri, JavaScript ve hatta bazı CAPTCHA'larla başa çıkabilir. Playwright, daha modern ve hızlı bir çözüm olarak kabul edilir. Bu kombinasyon Yandex.Eda ve Delivery Club ile çalışır.

Scrapy - Python'da ölçeklenebilir parçalayıcı için profesyonel bir çerçeve. İstek kuyruklarını, proxy için middleware'i, farklı formatlara dışa aktarmayı destekler. Restoran verilerini toplamak için büyük projeler için en iyi seçimdir.

Araç Kod gerekli mi? JS-Render Proxy Uygun olduğu yerler
Octoparse Hayır Kısmen Dahili döngü Bölgesel agregatörler
ParseHub Hayır Evet Dış proxy Çoğu agregatör
Apify Hayır Evet Dahili + dış proxy Yandex.Eda, Delivery Club
Selenium/Playwright Evet (Python) Evet Dış proxy Herhangi bir site
Scrapy Evet (Python) Eklentilerle Dış proxy Büyük veri toplama

Neden proxy olmadan parçalayıcı çalışmaz

Bu kritik bir sorudur. Birçok yeni analist, parçalayıcıyı doğrudan kendi IP'sinden çalıştırmaya çalışır ve hemen engelleme ile karşılaşır. Sebep basit: teslimat agregatörleri, kısa bir süre içinde bir adresten yüzlerce isteği görür ve otomatik olarak engeller. Erişimin geri kazanılması birkaç saatten birkaç güne kadar sürebilir.

Proxy'ler bu sorunu çözer, istekleri birçok farklı IP adresi arasında dağıtarak. Sunucu açısından, istekler farklı yerlerden gelen farklı kullanıcıların normal trafiği gibi görünür. Ancak tüm proxy'ler bu görev için eşit derecede etkili değildir.

Konut proxy'leri

Konut proxy'leri, gerçek ev kullanıcılarının IP adreslerini kullanır. Yandex.Eda veya Delivery Club açısından - bu, bir restoran menüsüne bakmaya gelen sıradan bir insandır. Bu tür proxy'ler doğru kullanıldığında neredeyse hiç engellenmez. Büyük agregatörlerden veri toplamak için mükemmel bir seçimdir.

Mobil proxy'ler

Mobil proxy'ler - mobil operatörlerin IP adresleridir (MTS, Beeline, MegaFon vb.). Özellikleri, bir mobil IP'nin binlerce gerçek kullanıcı tarafından aynı anda kullanılabilmesidir (NAT üzerinden), bu nedenle siteler mobil adresleri çok nadir engeller. Bu, yüksek istek sıklığı ile parçalayıcı için en güvenilir seçeneklerden biri haline getirir.

Veri merkezi proxy'leri

Veri merkezi proxy'leri - en hızlı ve en ucuz olanlardır, ancak IP'leri "insan olmayan" olarak kolayca tanımlanabilir. Basit korumaya sahip bölgesel agregatörler için uygundur, ancak Yandex.Eda ve Delivery Club bunları oldukça hızlı bir şekilde engeller. Ancak veri merkezi proxy'leri, sitenin yapısını ilk kez geçmek ve parçalayıcıyı test etmek için iyi çalışır.

Menü parçalayıcı için hangi tür proxy seçilmeli:

  • Yandex.Eda, Delivery Club → konut veya mobil proxy'ler
  • Bölgesel agregatörler (Chibbis vb.) → veri merkezi veya konut proxy'leri
  • Tüm Rusya'da veri toplama (farklı şehirler) → şehir bazında coğrafi hedefleme ile konut proxy'leri
  • Yüksek frekanslı izleme (her saat) → döngü ile mobil proxy'ler

Proxy ile parçalayıcıyı adım adım ayarlama

Pratik bir senaryoyu inceleyelim: Yandex.Eda'dan şehrinizdeki 20 rakipten pizza fiyatlarını günlük olarak toplamak istiyorsunuz. İşte bunu adım adım nasıl ayarlayacağınız.

Adım 1. Agregatörün API yapısını inceleyin

Yandex.Eda'yı tarayıcıda açın, F12'ye basın (Geliştirici Araçları), Ağ sekmesine geçin ve istekleri XHR/Fetch'e göre filtreleyin. Restoran sayfasını bulun ve menü yüklendiğinde hangi API isteklerinin gönderildiğine bakın. Genellikle bu, api/v1/menu?restaurantId=... gibi bir şeydir. Bu isteklerin başlıklarını kaydedin - bunlar taklit için gerekecek.

Adım 2. Araç seçin

Kod yazmıyorsanız - Apify veya ParseHub kullanın. Python'da yazıyorsanız - Playwright, JavaScript siteleri ile çalışmak için en iyi seçim olacaktır. Gerekli aracı kurun ve dış proxy bağlantısını desteklediğinden emin olun.

Adım 3. Coğrafi hedefleme ile proxy alın

Bu önemli bir noktadır. Yandex.Eda, şehirden bağımsız olarak farklı restoranlar gösterir. Eğer Yekaterinburg'daki restoranların menülerini parçalıyorsanız - Yekaterinburg'dan IP'lere sahip proxy'lere ihtiyacınız var. Şehir bazında coğrafi hedefleme ile konut proxy'leri, yerel kullanıcının gördüğü içeriği almanızı sağlar. Proxy ayarlarını yaparken gerekli bölgeyi belirtin.

Adım 4. Proxy döngüsünü ayarlayın

Tüm istekler için tek bir proxy kullanmayın. Döngü ayarlayın: her 5-10 istekte bir IP değiştirin. Apify'de bu, proxy havuzunun ayarları aracılığıyla yapılır. Scrapy'de - middleware aracılığıyla. Playwright'da - her tarayıcı bağlamı oluşturulduğunda yeni bir proxy ile geçiş yaparak. IP ne kadar sık değişirse, engellenme riski o kadar düşer.

Adım 5. İstekler arasındaki gecikmeleri ayarlayın

İstekler arasında rastgele gecikmeler ekleyin - 2 ile 8 saniye arasında. Bu, gerçek bir kullanıcının davranışını taklit eder. İstekleri 1 saniyeden daha kısa aralıklarla yapmayın - bu, yasaklanmanın kesin yoludur. Scrapy'de DOWNLOAD_DELAY parametresini kullanın ve AUTOTHROTTLE_ENABLED'i etkinleştirin.

Adım 6. İstek başlıklarını doğru ayarlayın

Her zaman gerçekçi bir User-Agent (tarayıcı dizesi), Accept-Language başlığını (örneğin, ru-RU,ru;q=0.9) ve Referer'i iletin. Bu başlıklar olmadan yapılan istekler bot gibi görünür ve öncelikle engellenir. Güncel User-Agent dizelerini Chrome veya Firefox'tan kullanın.

Adım 7. Zamanlama ve veri saklama ayarlayın

Parçalayıcıyı gece saatlerinde (02:00 ile 06:00 arasında) çalıştırın - agregatörlerin sunucularındaki yük minimumdur ve şüpheli trafik daha az belirgindir. Verileri bir veritabanına (PostgreSQL, MySQL) veya en azından zaman damgaları ile bir CSV dosyasına kaydedin. Bu, fiyat değişimlerinin tarihini oluşturmanıza olanak tanır.

# Playwright (Python) ile proxy ayarlama örneği
from playwright.sync_api import sync_playwright
import random
import time

proxies = [
    {"server": "http://proxy1.example.com:8080", "username": "user", "password": "pass"},
    {"server": "http://proxy2.example.com:8080", "username": "user", "password": "pass"},
    # ... daha fazla proxy
]

def parse_restaurant_menu(url):
    proxy = random.choice(proxies)
    
    with sync_playwright() as p:
        browser = p.chromium.launch()
        context = browser.new_context(
            proxy=proxy,
            user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
        )
        page = context.new_page()
        
        # Rastgele gecikme 2-8 saniye
        time.sleep(random.uniform(2, 8))
        
        page.goto(url)
        page.wait_for_selector('.menu-item')  # menünün yüklenmesini bekliyoruz
        
        # Yemek verilerini toplama
        items = page.query_selector_all('.menu-item')
        menu_data = []
        for item in items:
            name = item.query_selector('.item-name').inner_text()
            price = item.query_selector('.item-price').inner_text()
            menu_data.append({'name': name, 'price': price})
        
        browser.close()
        return menu_data

Tipik hatalar ve bunlardan nasıl kaçınılır

Araçların doğru ayarlanmasına rağmen, birçok kişi yemek teslimatı verilerini parçalarken sorunlarla karşılaşır. İşte en yaygın hatalar ve bunların nasıl düzeltileceği.

Hata 1: Tüm istekler için tek bir proxy kullanmak

En kaliteli konut proxy bile, günde yüzlerce isteğin tek bir siteye gitmesi durumunda engellenir. Her zaman en az 10-20 proxy'den oluşan bir havuz kullanın ve döngü ayarlayın. Ne kadar çok restoran parçalarsanız, o kadar fazla proxy gerekir.

Hata 2: Coğrafi hedeflemeyi göz ardı etmek

Yandex.Eda ve Delivery Club, kullanıcının şehrine bağlı olarak farklı içerikler gösterir. Eğer Novosibirsk'teki restoranların verilerini toplamak istiyorsanız, ancak Moskova proxy'leri kullanıyorsanız - Moskova verilerini alırsınız. Her zaman proxy'nin gerekli bölgeye uygun olup olmadığını kontrol edin.

Hata 3: HTML'den parçalayıcı yerine API kullanmak

Yeni başlayan parçalayıcılar, sayfaların HTML kodlarından veri toplamaya çalışırlar. Ancak SPA sitelerinde (Yandex.Eda tam olarak böyle) veriler HTML'ye gömülü değildir - API aracılığıyla yüklenir. İhtiyacınız olan API uç noktasını DevTools ile bulmak ve doğrudan ona başvurmak çok daha etkilidir. Bu, daha hızlı, daha stabil ve daha az kaynak gerektirir.

Hata 4: Çok yüksek istek sıklığı

Verileri daha hızlı toplama isteği anlaşılabilir, ancak bu anında engellemeye yol açar. 50 restoran için günlük fiyat izleme için, parçalayıcıyı günde bir kez başlatmak, istekler arasında 3-5 saniye beklemek yeterlidir. Gecikmeleri azaltarak süreci hızlandırmaya çalışmayın.

Hata 5: Proxy'nin çalışabilirliğini izlememek

Proxy'ler "ölüyor" olabilir - engelleniyorlar veya geçerlilik süreleri doluyor. Eğer parçalayıcı engellenmiş bir proxy ile çalışmaya devam ederse, boş veriler veya hatalar alırsınız ve problemi fark etmezsiniz. Her başlatmadan önce proxy'nin çalışabilirliğini kontrol edin ve çalışmayan adresleri otomatik olarak değiştirin.

Hata 6: Site yapısındaki değişiklikleri göz ardı etmek

Agregatörler düzenli olarak sitelerini ve API'lerini günceller. Bir ay önce çalışan bir parçalayıcı, bir sonraki güncellemeden sonra çalışmayı durdurabilir. Hatalar için bildirim ayarlayın ve parçalayıcının çalışabilirliğini en az haftada bir kontrol edin. Topladığınız verilerin yapısı hakkında belgeleri elinizin altında bulundurun.

Restoran menüsü parçalayıcısını başlatmadan önce kontrol listesi:

  • ✅ 10+ proxy'den oluşan bir havuz ayarlandı ve döngü yapıldı
  • ✅ Proxy'ler gerekli şehir/bölgeye uygun
  • ✅ İstekler arasında 3-8 saniye (rastgele) gecikmeler var
  • ✅ Gerçekçi bir User-Agent ayarlandı
  • ✅ Accept-Language ve Referer başlıkları eklendi
  • ✅ Zaman damgaları ile veri saklama ayarlandı
  • ✅ Hata izleme ve bildirimleri etkinleştirildi
  • ✅ Başlatma gece saatlerine planlandı

Sonuç

Restoran menülerini ve teslimat fiyatlarını parçalayıcı ile toplamak, restoran işinde ve HoReCa pazarında rekabet avantajı sağlamak için gerçek bir araçtır. Yandex.Eda, Delivery Club ve diğer agregatörler verilerini aktif olarak koruyor, ancak doğru bir yaklaşım ile - uygun araçların seçimi, gecikme ayarları ve kaliteli proxy kullanımı ile - veri toplama işlemi stabil bir şekilde çalışır ve engellemelerden kaçınılır.

Bu makaleden çıkarılacak ana noktalar: JavaScript render desteği olan araçlar kullanın (Playwright, Apify), proxy döngüsü ayarlayın, coğrafi hedeflemeyi unutmayın ve her zaman istekler arasında rastgele gecikmeler ekleyin. Bunlar, stabil bir parçalayıcı için üç temel unsurdur.

Eğer Yandex.Eda, Delivery Club veya bölgesel teslimat agregatörlerinden düzenli olarak veri toplamayı planlıyorsanız, konut proxy'lerine dikkat etmenizi öneririz - bu proxy'ler engellemelere karşı maksimum dayanıklılık sağlar ve Rus şehirleri için coğrafi hedefleme destekler, bu da belirli bölgelerde fiyat verilerini doğru bir şekilde toplamak için kritik öneme sahiptir.

```