Metadata-Version: 2.4
Name: yargitay_scraping
Version: 0.0.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: beautifulsoup4
Requires-Dist: selenium
Requires-Dist: chromedriver-autoinstaller
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: requires-dist

# Yargıtay Scraping

Yargıtay Karar Arama sitesinden belirlenen tarih aralığındaki kararları indiren Python paketidir.

## Kurulum

```bash
python -m pip install yargitay_scraping
```

Paket kurulurken gerekli bağımlılıklar otomatik kurulur. Manuel kurmak isterseniz:

```bash
python -m pip install selenium beautifulsoup4 chromedriver-autoinstaller
```

Google Chrome yüklü olmalıdır. Uyumlu ChromeDriver, paket tarafından otomatik olarak indirilir.

## Kullanım

### Python ile

```python
from yargitay_scraping import get_decisions

get_decisions(
    init_year="01.01.2025",
    last_year="31.12.2025",
)
```

### Terminal ile

Kurulumdan sonra paketi Python dosyası oluşturmadan terminalden de çalıştırabilirsiniz:

```bash
yargitay-scraping --start-date 01.01.2025 --end-date 31.12.2025
```

Tarih belirtilmezse varsayılan olarak `01.01.2025` ile `31.12.2025` aralığı kullanılır:

```bash
yargitay-scraping
```

Kullanılabilir seçenekleri görmek için:

```bash
yargitay-scraping --help
```

## Çıktı

Kararlar, komutu çalıştırdığınız dizindeki `kararlar/` klasörüne `.txt` olarak kaydedilir. Örneğin komutu `~/Masaustu` içinde çalıştırırsanız dosyalar `~/Masaustu/kararlar/` klasörüne kaydedilir.

## Kaldığı Yerden Devam Etme

Program aynı tarih aralığı için ilk başarılı aramada kararların doküman kimliklerini ve sırasını `kararlar/karar_listesi_*.json` dosyasına kaydeder. Sonraki çalıştırmalarda sitenin değişebilen sonuç indeksleri yerine bu sabit liste kullanılır.

Liste oluşturulurken her başarılı sayfa geçici olarak `kararlar/.karar_listesi_*.partial.json` dosyasına kaydedilir. Program kapanırsa veya bir sayfa yüklenemezse sonraki çalıştırmada son tamamlanan liste sayfasından devam eder. Siteyi aşırı yormamak için istekler arasında kısa bekleme, her 20 sayfada bir 60 saniyelik mola ve geçici hatalarda üç yeniden deneme uygulanır.

Arama sonucundaki toplam karar sayısı liste oluşturma sırasında değişirse daha önce kaydedilen sayfalar korunur. Sunucu aynı doküman kimliğini birden fazla sayfada döndürürse kayıt listede yalnızca bir kez tutulur.

Her karar kaydedildikten sonra sabit listedeki sıradaki konum `kararlar/.yargitay_scraping_progress.json` dosyasına yazılır. Program kapanır veya hata verirse, aynı tarih aralığıyla ve aynı dizinde tekrar çalıştırmanız yeterlidir:

```bash
yargitay-scraping --start-date 01.01.2025 --end-date 31.12.2025
```

Program kayıtlı doküman kimliğinden devam eder. Daha önce indirilmiş kararlar, daire–esas–karar numarasıyla eşleştirilir ve tekrar indirilmez. Tüm kararlar indirildiğinde ilerleme dosyası otomatik silinir.

Kararların farklı oturumlarda aynı sırada kalması için `kararlar/karar_listesi_*.json` dosyasını silmeyin. Liste henüz tamamlanmamışsa `.karar_listesi_*.partial.json` dosyasını da silmeyin. Yeni bir liste oluşturmak isterseniz ilgili liste dosyasını, kısmi listeyi ve ilerleme dosyasını birlikte silebilirsiniz.

Yeni karar metni yüklenmezse, boş içerik gelirse veya CAPTCHA doğrulaması istenirse program aynı kararı tekrar kaydetmeden güvenli şekilde durur. Aynı komutu yeniden çalıştırdığınızda son başarıyla kaydedilen karardan devam eder.
