Projelere Dön

Fon Scrapper

fintables fon scrapper

Fintables Fon Scraper 🏦

Python License

Fintables.com üzerindeki yatırım ve emeklilik fonlarının getiri verilerini otomatik olarak çeken ve Excel/PDF formatında kaydeden Python scraper.

✨ Özellikler

  • 🔄 2375+ yatırım fonunu otomatik olarak çeker
  • 📊 Excel, PDF ve CSV formatlarında dışa aktarım
  • 🎯 İnteraktif filtre menüsü - Komut satırından kolayca filtre seçimi
  • 🏷️ TEFAS filtresi - Açık, Kapalı veya Tümü
  • 💼 Fon türü seçimi - Yatırım Fonları veya Emeklilik Fonları
  • 🎨 Profesyonel raporlar - Formatlanmış Excel ve PDF çıktıları
  • 🤖 Bot koruması aşar - Playwright ile gerçek tarayıcı otomasyonu

📊 Çekilen Veriler

SütunAçıklama
KodFon kodu (örn: AAK)
Fon AdıFonun tam adı
TürFon türü (Değişken, Serbest, Para Piyasası, vb.)
TEFASTEFAS'ta işlem görüyor mu (Evet/Hayır)
1 Ay (%)Son 1 aylık getiri
3 Ay (%)Son 3 aylık getiri
6 Ay (%)Son 6 aylık getiri
Yılbaşı (%)Yılbaşından bu yana getiri
1 Yıl (%)Son 1 yıllık getiri
3 Yıl (%)Son 3 yıllık getiri
5 Yıl (%)Son 5 yıllık getiri

🚀 Kurulum

1. Depoyu Klonla

git clone https://github.com/bugraskl/fon-scrapper.git
cd fon-scrapper

2. Bağımlılıkları Yükle

pip install -r requirements.txt

3. Playwright Tarayıcısını Yükle

playwright install chromium

💻 Kullanım

İnteraktif Mod (Önerilen)

python scraper.py

Bu komut size şu seçenekleri sunar:

  1. Fon Türü: Yatırım Fonları veya Emeklilik Fonları
  2. TEFAS Durumu: Açık, Kapalı veya Tümü
  3. Çıktı Formatı: Excel, PDF, CSV veya hepsi
  4. Dosya Adı: Özel dosya adı belirleyebilirsiniz

Komut Satırı Modu

# Varsayılan ayarlarla çalıştır (Excel + PDF)
python scraper.py --no-prompt

# Sadece TEFAS açık fonlar
python scraper.py --no-prompt --tefas 1

# Sadece TEFAS kapalı fonlar
python scraper.py --no-prompt --tefas 2

# Tüm fonlar (varsayılan)
python scraper.py --no-prompt --tefas 3

# Emeklilik fonları
python scraper.py --no-prompt --pension

# Özel dosya adı
python scraper.py --no-prompt -o rapor

# Sadece Excel
python scraper.py --no-prompt --excel

# Sadece PDF
python scraper.py --no-prompt --pdf

# Sadece CSV
python scraper.py --no-prompt --csv

# Hepsi birden
python scraper.py --no-prompt --excel --pdf --csv

# Tarayıcıyı görünür şekilde çalıştır (debug)
python scraper.py --visible

Tüm Parametreler

ParametreAçıklamaVarsayılan
-o, --outputÇıktı dosya adıfonlar_YYYYMMDD_HHMMSS
--no-promptİnteraktif menüyü atla-
--tefasTEFAS filtresi (1=Açık, 2=Kapalı, 3=Tümü)3
--pensionEmeklilik fonlarını çek-
--excelExcel formatında kaydet-
--pdfPDF formatında kaydet-
--csvCSV formatında kaydet-
--visibleTarayıcıyı görünür çalıştır-
--timeoutZaman aşımı (ms)60000

📁 Çıktı Dosyaları

Tüm dosyalar files/ klasörüne kaydedilir:

fon-scrapper/
├── files/
│   ├── fonlar_20260106_191030.xlsx
│   ├── fonlar_20260106_191030.pdf
│   └── fonlar_20260106_191030.csv
├── scraper.py
├── requirements.txt
└── README.md

Excel Çıktısı

  • Mavi başlık satırı (kalın, beyaz yazı)
  • Otomatik sütun genişlikleri
  • Filtre özelliği aktif
  • Profesyonel görünüm

PDF Çıktısı

  • A4 yatay format
  • Türkçe karakter desteği
  • Alternatif satır renkleri
  • Tarih ve fon sayısı bilgisi

📋 Gereksinimler

  • Python 3.8+
  • playwright
  • pandas
  • openpyxl
  • reportlab

🔧 Sorun Giderme

"Playwright not installed" hatası

playwright install chromium

Zaman aşımı hatası

Timeout değerini artırın:

python scraper.py --timeout 120000

Tarayıcı görünmüyor

Debug için görünür mod kullanın:

python scraper.py --visible

📝 Örnek Çıktı

==================================================
🏦 Fintables Fon Scraper
==================================================
🚀 Tarayıcı başlatılıyor...
📡 Sayfa yükleniyor...
🔧 TEFAS filtresi: 'Tümü'
✅ TEFAS filtresi 'Tümü' olarak ayarlandı
📥 API yanıtı: 2375 fon
✅ Toplam 2375 fon verisi alındı.
📋 İşlenen fon sayısı: 2375
📊 Excel kaydedildi: files/fonlar_20260106_191030.xlsx
📑 PDF kaydedildi: files/fonlar_20260106_191030.pdf

==================================================
✅ İşlem tamamlandı!
📊 Toplam 2375 fon kaydedildi.
📁 Dosyalar: ./files/
==================================================

⚠️ Yasal Uyarı

Bu araç yalnızca eğitim ve kişisel kullanım amaçlıdır. Verilerin ticari kullanımı için Fintables.com kullanım şartlarını kontrol edin.

📄 Lisans

Bu proje MIT Lisansı altında lisanslanmıştır.


⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!

Teknolojiler

Python
finance
fintable
python
scrapper

Detaylar

Yıldız1
Fork0
DilPython

Bağlantılar

Kaynak Kodu
AI Asistan