Metadata-Version: 2.4
Name: descraper
Version: 0.1.4
Summary: A robust web scraping pipeline with smart static/dynamic fallback and semantic text classification.
Home-page: https://github.com/unan/descraper
Author: Ugurhan Colak
Author-email: ugurhancolak5544@gmail.com
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: beautifulsoup4
Requires-Dist: selenium
Requires-Dist: webdriver-manager
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# DeScraper 🕷️

**DeScraper**, hem statik hem de dinamik (JavaScript) web sitelerinden veri çekmek için tasarlanmış, hataya dayanıklı ve akıllı bir Python kütüphanesidir.

Otomatik olarak site yapısını analiz eder, en uygun yöntemi (Requests veya Selenium) seçer ve metinleri semantik olarak (Başlık, Menü, Haber İçeriği vb.) sınıflandırır.

## Özellikler

*   🚀 **Akıllı Mod:** Önce hızlı yöntemle (Requests) dener, gerekirse otomatik olarak ağır silahlara (Selenium) geçer.
*   📜 **Infinite Scroll Desteği:** Sayfayı otomatik aşağı kaydırarak sonradan yüklenen içerikleri yakalar.
*   🧠 **Semantik Analiz:** Metinleri sadece "yazı" olarak değil; `heading`, `navigation`, `article_paragraph` gibi türlerine göre ayırır.
*   🛡️ **Hata Toleransı:** Ağ hatalarında otomatik tekrar deneme (retry) mekanizması vardır.
*   📦 **Çift Kullanım:** Hem Python kütüphanesi olarak hem de Komut Satırı (CLI) aracı olarak kullanılabilir.

## Kurulum

```bash
pip install descraper
```

## Kullanım

### 1. Terminalden (CLI) Kullanım

Kurulumdan sonra terminalinizde `web-scraper` komutu aktif olacaktır.

**Basit Kullanım:**
```bash
web-scraper https://www.ornek-haber-sitesi.com
```

**JSON Dosyasına Kaydetme:**
```bash
web-scraper https://www.ornek.com -o sonuc.json
```

**Dinamik Mod ve Scroll (10 saniye bekleme):**
```bash
web-scraper https://www.ornek.com -s dynamic -w 10
```

### 2. Python İçinde Kullanım

```python
from descraper import run_scrape

url = "https://www.ornek.com"

# Veriyi çek
data = run_scrape(url, strategy='smart')

if data:
    print(f"Başlık: {data['title']}")
    
    # Sadece haber metinlerini al
    print("\n--- Haber İçeriği ---")
    for block in data['structured_text']:
        if block['type'] == 'article_paragraph':
            print(block['text'])
```

## Gereksinimler

*   Python 3.8+
*   Firefox Tarayıcısı (Dinamik mod için gereklidir, sürücü otomatik indirilir)

## Lisans

MIT License
