Hocam Abacus ai gir 10USD ile ödeme yap ve promt olarak ta aşağıdaki yazdığımı ver sana istediğin yerden istediğin veriyi çeksin takılırsan yaz ücretsiz yardımcı olabilirim mesai saatleri dışında
Sen bir web veri toplayıcı ve API üretici ajansın. Hedefim, Türkiyedeki market/süpermarket broşürlerini iki kaynaktan otomatik çekip uygulamamda kullanmak. Kaynaklar:
- Akakçe Aktüel: https://www.akakce.com/brosurler/?l=1
- Tiendeo Süpermarket broşürleri: https://www.tiendeo.com.tr/Brosurler...supermarketler
Amaç:
Her broşür için şu alanları çıkar ve tek bir standart JSON şemasında birleştir:
- market_name (örn. A101, BİM, ŞOK, Migros vb.)
- brosur_title (varsa broşür/katalog başlığı)
- start_date (varsa)
- end_date (broşürün geçerlilik/bitiş tarihi; son gün gibi ifadeleri gerçek tarihe çevir)
- source ("akakce" veya "tiendeo")
- detail_url (broşür detay sayfası)
- images (broşür sayfalarının tam URL listesi; mümkünse yüksek çözünürlük)
- thumbnail (varsa kapak görseli)
- fetched_at (ISO datetime)
Çalışma Planı:- Liste sayfasını tara.
- Akakçede broşür liste elemanlarını bul: her kart/öğe içindeki market adı, broşür başlığı, geçerlilik/bitiş bilgisi ve detay linki.
- Tiendeoda süpermarket listesindeki broşür kartlarını bul: market adı, bitmesine kalan süre / bitiş tarihi metni ve detay linki.
- Detay sayfasına gir.
- Her broşürün detay sayfasında broşür sayfalarını (carousel / galeri / gömülü resimler / pdf sayfa imgleri) tespit et.
- Eğer PDF varsa, PDFyi indirip sayfalara böl ve her sayfanın görsel URLsini veya binarysini çıkar.
- Görseller lazy-load ile geliyorsa data-src, srcset vb. alanları kontrol et.
- Tarih normalizasyonu yap.
- Türkçe tarih formatlarını parse et: 30 Kasım 2025, Kasım 2025, Yarın son gün, 2 gün kaldı vb.
- Relatif ifadeleri bugünün tarihine göre gerçek end_date değerine dönüştür.
- Tarih bulunamazsa null bırak ama raw_date_text alanında ham metni tut.
- Tekilleştirme / güncelleme mantığı:
- Aynı detail_url veya aynı market+başlık+end_date kombinasyonu tekrar gelirse tek kayıt tut.
- end_date geçmişse broşürü expired olarak işaretle.
- Çıktı Formatı:
Aşağıdaki şemaya tam uyan bir JSON array üret:
[
{
"market_name": "",
"brosur_title": "",
"start_date": "YYYY-MM-DD|null",
"end_date": "YYYY-MM-DD|null",
"raw_date_text": "",
"source": "akakce|tiendeo",
"detail_url": "",
"thumbnail": "",
"images": ["", ""],
"fetched_at": "YYYY-MM-DDTHH:mm:ssZ",
"status": "active|expired|unknown"
}
] - API taslağı üret:
Toplanan veriyi servis edecek basit bir REST API tanımı yaz:
- GET /brosurler → tüm aktif broşürler (opsiyonel filtre: source, market_name, date_min, date_max)
- GET /brosurler/{id} → tek broşür + tüm görseller
- GET /markets → market listesi + aktif broşür sayısı
Yanıtlar yukarıdaki şemayı kullansın.
Kısıtlar ve kalite:- Sadece herkese açık HTML/PDF içeriğini kullan, login/kapalı içerik deneme.
- Robots/ToS engeli varsa not düş ve o kaynağı es geç.
- Görsel URLleri mümkünse absolute yap ve kırık linkleri ele.
- Hata toleransı: Bir broşürün bazı sayfaları alınamazsa diğerlerini yine kaydet.