Emirhan-Karabulut/KocaeliNewsMonitor

C#

0

28 commits

updated Apr 3, 2026

See the code

README

🗞️ Kocaeli Haber İzleme Sistemi

Web Scraping Tabanlı Kentsel Haber İzleme ve Harita Üzerinde Görselleştirme Sistemi

Kocaeli Üniversitesi · Bilgisayar Mühendisliği · Yazılım Laboratuvarı-II · Proje I

Kocaeli'ye özel yerel haber sitelerinden haberleri otomatik olarak toplayan, sınıflandıran, konum bilgisi çıkaran ve Google Maps üzerinde görselleştiren full-stack bir web uygulamasıdır.


📋 İçindekiler


🎯 Projenin Amacı

Şehir yaşamını etkileyen olaylar (trafik kazaları, yangınlar, elektrik kesintileri vb.) birçok farklı haber sitesinde dağınık şekilde yayımlanmaktadır. Bu proje, Kocaeli ili sınırları içindeki yerel haberleri tek bir merkezde toplayarak:

  • Haberleri RSS feed + google-news.xml ile otomatik olarak çeker,
  • Metin analizi yaparak haber türünü sınıflandırır (ağırlıklı keyword matching),
  • Haber metninden konum bilgisi çıkarır ve geocoding ile koordinata dönüştürür,
  • Embedding tabanlı benzerlik ile duplicate tespiti yapar (%90 eşik),
  • Tüm verileri MongoDB'de saklar,
  • Kullanıcıya Google Maps üzerinde interaktif bir harita arayüzü sunar.

🏗️ Mimari & Teknoloji Yığını

┌─────────────────────────────────────────────────────────┐
│                    KULLANICI (Tarayıcı)                  │
│                React 19 + Vite + Google Maps             │
└──────────────────────────┬──────────────────────────────┘
                           │  HTTP / REST API
┌──────────────────────────▼──────────────────────────────┐
│                  ASP.NET Core 9 Web API                  │
│  ┌──────────┐ ┌───────────────┐ ┌────────────────────┐  │
│  │ Scrapers │ │ Classification│ │ Location & Geocode │  │
│  │ (RSS+HAP)│ │ Service       │ │ Service            │  │
│  └──────────┘ └───────────────┘ └────────────────────┘  │
│  ┌──────────────────┐ ┌────────────────────────────┐    │
│  │ Text Cleaning    │ │ Similarity Service         │    │
│  │ Service          │ │ (SBERT veya TF-IDF)        │    │
│  └──────────────────┘ └────────────────────────────┘    │
└──────────────────────────┬──────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────┐
│                     MongoDB (NoSQL)                      │
│           KocaeliNewsDB (news + locationCache)           │
└─────────────────────────────────────────────────────────┘
KatmanTeknolojiAçıklama
BackendASP.NET Core 9REST API, scraping orkestrasyon, iş mantığı
FrontendReact 19 + Vite 6SPA arayüz, harita görselleştirme
VeritabanıMongoDBHaber verilerinin NoSQL olarak saklanması
HaritaGoogle Maps JavaScript APIHaberlerin harita üzerinde gösterimi
ScrapingRSS + HtmlAgilityPackRSS feed parse + HTML scrape
GeocodingGoogle Geocoding APIKonum metni → enlem/boylam dönüşümü

📁 Proje Yapısı

KocaeliNewsMonitor/
├── backend/
│   ├── KocaeliNews.sln                    # .NET Solution dosyası
│   └── KocaeliNews.API/
│       ├── Controllers/
│       │   ├── NewsController.cs          # GET /api/news, GET /api/news/map
│       │   └── ScrapingController.cs      # POST /api/scraping/start
│       ├── Models/
│       │   ├── News.cs                    # Haber modeli + NewsType enum + SourceInfo
│       │   ├── FilterRequest.cs           # Filtre parametreleri (tür, ilçe, tarih)
│       │   └── ScrapingResult.cs          # Pipeline analiz ve sonuç DTO'su
│       │
│       ├── Services/
│       │   ├── MongoDbService.cs          # MongoDB bağlantı, CRUD, filtre sorguları
│       │   ├── ScrapingOrchestrator.cs    # 5 siteyi paralel koordine eder
│       │   ├── TextCleaningService.cs     # HTML temizleme, metin normalizasyon
│       │   ├── ClassificationService.cs   # Ağırlıklı keyword sınıflandırma
│       │   ├── LocationService.cs         # Haber metninden ilçe/mahalle çıkarımı
│       │   ├── GeocodingService.cs        # Google Geocoding API + MongoDB cache
│       │   ├── SimilarityService.cs       # SBERT veya TF-IDF + Cosine Similarity
│       │   └── Scrapers/
│       │       ├── INewsScraper.cs        # Scraper arayüzü (interface)
│       │       ├── BaseScraper.cs         # Rate limiting, RSS parse, retry (abstract)
│       │       ├── CagdasKocaeliScraper.cs  # Daktilo CMS (sites/549)
│       │       ├── OzgurKocaeliScraper.cs   # Daktilo CMS (sites/535)
│       │       ├── SesKocaeliScraper.cs     # Daktilo CMS (sites/498)
│       │       ├── BizimYakaScraper.cs      # Daktilo CMS (sites/358)
│       │       └── YeniKocaeliScraper.cs    # Farklı CMS (her haber HTML scrape)
│       ├── appsettings.json               # MongoDB + genel ayarlar
│       ├── appsettings.Development.json               # 🔒 API key (gitignore)
│       ├── appsettings.Development.example.json       # 📋 Şablon
│       └── Program.cs                     # DI, CORS, HttpClientFactory
│
├── frontend/
│   ├── index.html
│   ├── vite.config.js                     # API proxy ayarı (/api → localhost:5062)
│   ├── package.json
│   ├── .env.local                         # 🔒 Google Maps API Key (gitignore)
│   ├── .env.example                       # 📋 Şablon
│   └── src/
│       ├── main.jsx
│       ├── App.jsx
│       ├── App.css
│       ├── components/
│       │   ├── Header.jsx                 # Üst menü
│       │   ├── FilterPanel.jsx            # Filtre arayüzü (tür, ilçe, tarih)
│       │   ├── MapView.jsx                # Google Maps harita bileşeni
│       │   ├── NewsCard.jsx               # Tek haber kartı
│       │   └── Sidebar.jsx                # Haber listesi paneli
│       ├── services/
│       │   └── api.js                     # Axios ile backend API çağrıları
│       └── utils/
│           └── markerIcons.js             # Kategori bazlı marker renkleri
│
├── .env.example                           # Ortam değişkenleri rehberi
├── .gitignore
└── README.md

🌐 Haber Kaynakları & Veri Toplama Stratejisi

Kaynak Listesi

#KaynakCMSRSS tam metingoogle-news.xmlStrateji
1cagdaskocaeli.com.trDaktilo✅✅RSS + google-news
2ozgurkocaeli.com.trDaktilo✅✅RSS + google-news
3seskocaeli.comDaktilo✅✅RSS + google-news
4bizimyaka.comDaktilo✅✅RSS + google-news
5yenikocaeli.comFarklı❌✅RSS + google-news (HTML scrape)

4 site aynı Daktilo CMS → aynı scraper mantığı. yenikocaeli farklı CMS → ayrı scraper.

Neden İki Aşamalı Çalışıyor?

AşamaKaynakNe zamanMaliyet
İlk yüklemegoogle-news.xml → URL → HTML scrape1 kez (ilk açılış)~80 istek/site, ~2.5 dk
Sürekli izlemeRSS feed (content:encoded)Her 15 dakika1 istek/site, <1 sn
  • RSS tek başına son 3 günü karşılamıyor (~20 haber, sadece bugünkü)
  • google-news.xml'i her 15 dk'da çekmek çok pahalı (günde 38.880 istek)
  • Çözüm: İlk 3 günü google-news.xml ile doldur, sonrasını RSS ile ucuza güncel tut

Veri Toplama Akışı

İlk Yükleme (3 günlük geçmiş):
  4 Daktilo site → google-news.xml → URL listesi → detay sayfası scrape → tam metin
  yenikocaeli    → google-news.xml → URL listesi → detay sayfası scrape → tam metin

Sürekli İzleme (her 15 dakika):
  4 Daktilo site → RSS → content:encoded (tam metin var, scrape'e gerek yok ⚡)
  yenikocaeli    → RSS → URL → detay sayfası scrape → tam metin

Paralel Çalışma & Ban Koruması

  • 5 site BİRBİRİNE PARALEL çalışır (Task.WhenAll) → toplam süre = en yavaş site
  • Aynı site içinde SIRALI (SemaphoreSlim(1,1)) → aynı anda max 1 istek
  • Rastgele gecikme (1-3 saniye) → bot algılama tetiklemez
  • User-Agent: KocaeliHaberBot/1.0 → şeffaf kimlik
  • Retry: 429/503 hatalarında 3 deneme, exponential backoff

🏷️ Haber Türleri

Her haber otomatik olarak tek bir kategoriye sınıflandırılır:

RenkTürAçıklama
🔴Trafik KazasıAraç kazaları, trafik olayları
🟠YangınYangın haberleri, itfaiye müdahaleleri
🟡Elektrik KesintisiPlanlı/plansız elektrik kesintileri
🟣HırsızlıkHırsızlık, dolandırıcılık olayları
🟢Kültürel EtkinlikFestival, konser, sergi, tören

Sınıflandırma yöntemi: Ağırlıklı keyword matching (bigram/trigram + exclusion kuralları). Güçlü keyword (10p) + destek keyword (5p) + exclusion → false positive önleme.


⚙️ Temel Özellikler

🔄 Web Scraping

  • 5 yerel haber kaynağından RSS + google-news.xml ile otomatik veri çekme
  • İlk yüklemede son 3 günlük haberler, sonrasında 15 dk'da bir güncelleme
  • Rate limiting (SemaphoreSlim, rastgele gecikme) ile ban koruması
  • Retry mantığı (3 deneme, exponential backoff)

🏷️ Otomatik Sınıflandırma

  • Ağırlıklı keyword matching (bigram/trigram dahil)
  • Güçlü, destekleyici ve exclusion kuralları
  • False positive önleme: "oruç kazası" → trafik kazası DEĞİL

🔁 Duplicate Tespiti (Embedding Tabanlı)

  • İki alternatif yöntem:
  • Cosine Similarity ≥ 0.90 → aynı haber → kaynaklar tek kayıtta birleştirilir

📍 Konum Çıkarımı & Geocoding

  • 12 Kocaeli ilçesi + mahalle/cadde sözlüğü ile metin taraması
  • Google Geocoding API + MongoDB cache (aynı adres için tekrar API çağrısı yok)

🗺️ Google Maps Görselleştirme

  • Kategori bazlı renkli marker'lar (🔴🟠🟡🟣🟢)
  • Bilgi penceresi: başlık, tarih, tüm kaynaklar, "Habere Git" butonu

🔍 Filtreleme

  • Haber türü, ilçe, tarih aralığı
  • Dinamik filtreleme (sayfa yenilenmeden)

🚀 Kurulum

Gereksinimler

AraçMinimum Versiyon
.NET SDK9.0
Node.js18+
MongoDB7.0+ (servis olarak kur)
Google API KeyMaps JavaScript + Geocoding API

Backend

cd backend
dotnet restore
cd KocaeliNews.API
cp appsettings.Development.example.json appsettings.Development.json
# appsettings.Development.json → GeocodingApiKey'i kendi key'inle değiştir

appsettings.json → MongoDB + genel ayarlar (değiştirme). appsettings.Development.json → sadece API key (gitignore'da). .NET bu ikisini otomatik birleştirir.

Frontend

cd frontend
npm install
echo VITE_GOOGLE_MAPS_API_KEY=SENIN_MAPS_API_KEYIN > .env.local

▶️ Çalıştırma

# MongoDB çalışıyor mu?
Get-Service MongoDB   # Status: Running olmalı

# Terminal 1: Backend
cd backend && dotnet run --project KocaeliNews.API
# → http://localhost:5062

# Terminal 2: Frontend
cd frontend && npm run dev
# → http://localhost:5173

📡 API Endpointleri

MetodEndpointAçıklama
GET/api/newsTüm haberleri listele (varsayılan: son 3 gün)
GET/api/news?newsType=Fire&district=GebzeFiltrelenmiş haberler
GET/api/news/mapSadece koordinatlı haberler (harita için)
POST/api/scraping/startScraping işlemini başlat (ScrapingResult nesnesi döner)
GET/api/scraping/test-scraper?source={name}Sadece belirtilen siteden veri çeker, DB'ye yazmaz
GET/api/scraping/test-pipeline?source={name}Belirtilen siteden veri çeker ve sınıflandırır, DB'ye yazmaz
GET/api/scraping/sourcesSistemde kayıtlı olan aktif scraper'ları listeler

Kocaeli Üniversitesi · Bilgisayar Mühendisliği · 2025-2026

Emirhan-Karabulut/KocaeliNewsMonitor

C#

0

28 commits

updated Apr 3, 2026

See the code

README

🗞️ Kocaeli Haber İzleme Sistemi

Web Scraping Tabanlı Kentsel Haber İzleme ve Harita Üzerinde Görselleştirme Sistemi

Kocaeli Üniversitesi · Bilgisayar Mühendisliği · Yazılım Laboratuvarı-II · Proje I

Kocaeli'ye özel yerel haber sitelerinden haberleri otomatik olarak toplayan, sınıflandıran, konum bilgisi çıkaran ve Google Maps üzerinde görselleştiren full-stack bir web uygulamasıdır.


📋 İçindekiler


🎯 Projenin Amacı

Şehir yaşamını etkileyen olaylar (trafik kazaları, yangınlar, elektrik kesintileri vb.) birçok farklı haber sitesinde dağınık şekilde yayımlanmaktadır. Bu proje, Kocaeli ili sınırları içindeki yerel haberleri tek bir merkezde toplayarak:

  • Haberleri RSS feed + google-news.xml ile otomatik olarak çeker,
  • Metin analizi yaparak haber türünü sınıflandırır (ağırlıklı keyword matching),
  • Haber metninden konum bilgisi çıkarır ve geocoding ile koordinata dönüştürür,
  • Embedding tabanlı benzerlik ile duplicate tespiti yapar (%90 eşik),
  • Tüm verileri MongoDB'de saklar,
  • Kullanıcıya Google Maps üzerinde interaktif bir harita arayüzü sunar.

🏗️ Mimari & Teknoloji Yığını

┌─────────────────────────────────────────────────────────┐
│                    KULLANICI (Tarayıcı)                  │
│                React 19 + Vite + Google Maps             │
└──────────────────────────┬──────────────────────────────┘
                           │  HTTP / REST API
┌──────────────────────────▼──────────────────────────────┐
│                  ASP.NET Core 9 Web API                  │
│  ┌──────────┐ ┌───────────────┐ ┌────────────────────┐  │
│  │ Scrapers │ │ Classification│ │ Location & Geocode │  │
│  │ (RSS+HAP)│ │ Service       │ │ Service            │  │
│  └──────────┘ └───────────────┘ └────────────────────┘  │
│  ┌──────────────────┐ ┌────────────────────────────┐    │
│  │ Text Cleaning    │ │ Similarity Service         │    │
│  │ Service          │ │ (SBERT veya TF-IDF)        │    │
│  └──────────────────┘ └────────────────────────────┘    │
└──────────────────────────┬──────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────┐
│                     MongoDB (NoSQL)                      │
│           KocaeliNewsDB (news + locationCache)           │
└─────────────────────────────────────────────────────────┘
KatmanTeknolojiAçıklama
BackendASP.NET Core 9REST API, scraping orkestrasyon, iş mantığı
FrontendReact 19 + Vite 6SPA arayüz, harita görselleştirme
VeritabanıMongoDBHaber verilerinin NoSQL olarak saklanması
HaritaGoogle Maps JavaScript APIHaberlerin harita üzerinde gösterimi
ScrapingRSS + HtmlAgilityPackRSS feed parse + HTML scrape
GeocodingGoogle Geocoding APIKonum metni → enlem/boylam dönüşümü

📁 Proje Yapısı

KocaeliNewsMonitor/
├── backend/
│   ├── KocaeliNews.sln                    # .NET Solution dosyası
│   └── KocaeliNews.API/
│       ├── Controllers/
│       │   ├── NewsController.cs          # GET /api/news, GET /api/news/map
│       │   └── ScrapingController.cs      # POST /api/scraping/start
│       ├── Models/
│       │   ├── News.cs                    # Haber modeli + NewsType enum + SourceInfo
│       │   ├── FilterRequest.cs           # Filtre parametreleri (tür, ilçe, tarih)
│       │   └── ScrapingResult.cs          # Pipeline analiz ve sonuç DTO'su
│       │
│       ├── Services/
│       │   ├── MongoDbService.cs          # MongoDB bağlantı, CRUD, filtre sorguları
│       │   ├── ScrapingOrchestrator.cs    # 5 siteyi paralel koordine eder
│       │   ├── TextCleaningService.cs     # HTML temizleme, metin normalizasyon
│       │   ├── ClassificationService.cs   # Ağırlıklı keyword sınıflandırma
│       │   ├── LocationService.cs         # Haber metninden ilçe/mahalle çıkarımı
│       │   ├── GeocodingService.cs        # Google Geocoding API + MongoDB cache
│       │   ├── SimilarityService.cs       # SBERT veya TF-IDF + Cosine Similarity
│       │   └── Scrapers/
│       │       ├── INewsScraper.cs        # Scraper arayüzü (interface)
│       │       ├── BaseScraper.cs         # Rate limiting, RSS parse, retry (abstract)
│       │       ├── CagdasKocaeliScraper.cs  # Daktilo CMS (sites/549)
│       │       ├── OzgurKocaeliScraper.cs   # Daktilo CMS (sites/535)
│       │       ├── SesKocaeliScraper.cs     # Daktilo CMS (sites/498)
│       │       ├── BizimYakaScraper.cs      # Daktilo CMS (sites/358)
│       │       └── YeniKocaeliScraper.cs    # Farklı CMS (her haber HTML scrape)
│       ├── appsettings.json               # MongoDB + genel ayarlar
│       ├── appsettings.Development.json               # 🔒 API key (gitignore)
│       ├── appsettings.Development.example.json       # 📋 Şablon
│       └── Program.cs                     # DI, CORS, HttpClientFactory
│
├── frontend/
│   ├── index.html
│   ├── vite.config.js                     # API proxy ayarı (/api → localhost:5062)
│   ├── package.json
│   ├── .env.local                         # 🔒 Google Maps API Key (gitignore)
│   ├── .env.example                       # 📋 Şablon
│   └── src/
│       ├── main.jsx
│       ├── App.jsx
│       ├── App.css
│       ├── components/
│       │   ├── Header.jsx                 # Üst menü
│       │   ├── FilterPanel.jsx            # Filtre arayüzü (tür, ilçe, tarih)
│       │   ├── MapView.jsx                # Google Maps harita bileşeni
│       │   ├── NewsCard.jsx               # Tek haber kartı
│       │   └── Sidebar.jsx                # Haber listesi paneli
│       ├── services/
│       │   └── api.js                     # Axios ile backend API çağrıları
│       └── utils/
│           └── markerIcons.js             # Kategori bazlı marker renkleri
│
├── .env.example                           # Ortam değişkenleri rehberi
├── .gitignore
└── README.md

🌐 Haber Kaynakları & Veri Toplama Stratejisi

Kaynak Listesi

#KaynakCMSRSS tam metingoogle-news.xmlStrateji
1cagdaskocaeli.com.trDaktilo✅✅RSS + google-news
2ozgurkocaeli.com.trDaktilo✅✅RSS + google-news
3seskocaeli.comDaktilo✅✅RSS + google-news
4bizimyaka.comDaktilo✅✅RSS + google-news
5yenikocaeli.comFarklı❌✅RSS + google-news (HTML scrape)

4 site aynı Daktilo CMS → aynı scraper mantığı. yenikocaeli farklı CMS → ayrı scraper.

Neden İki Aşamalı Çalışıyor?

AşamaKaynakNe zamanMaliyet
İlk yüklemegoogle-news.xml → URL → HTML scrape1 kez (ilk açılış)~80 istek/site, ~2.5 dk
Sürekli izlemeRSS feed (content:encoded)Her 15 dakika1 istek/site, <1 sn
  • RSS tek başına son 3 günü karşılamıyor (~20 haber, sadece bugünkü)
  • google-news.xml'i her 15 dk'da çekmek çok pahalı (günde 38.880 istek)
  • Çözüm: İlk 3 günü google-news.xml ile doldur, sonrasını RSS ile ucuza güncel tut

Veri Toplama Akışı

İlk Yükleme (3 günlük geçmiş):
  4 Daktilo site → google-news.xml → URL listesi → detay sayfası scrape → tam metin
  yenikocaeli    → google-news.xml → URL listesi → detay sayfası scrape → tam metin

Sürekli İzleme (her 15 dakika):
  4 Daktilo site → RSS → content:encoded (tam metin var, scrape'e gerek yok ⚡)
  yenikocaeli    → RSS → URL → detay sayfası scrape → tam metin

Paralel Çalışma & Ban Koruması

  • 5 site BİRBİRİNE PARALEL çalışır (Task.WhenAll) → toplam süre = en yavaş site
  • Aynı site içinde SIRALI (SemaphoreSlim(1,1)) → aynı anda max 1 istek
  • Rastgele gecikme (1-3 saniye) → bot algılama tetiklemez
  • User-Agent: KocaeliHaberBot/1.0 → şeffaf kimlik
  • Retry: 429/503 hatalarında 3 deneme, exponential backoff

🏷️ Haber Türleri

Her haber otomatik olarak tek bir kategoriye sınıflandırılır:

RenkTürAçıklama
🔴Trafik KazasıAraç kazaları, trafik olayları
🟠YangınYangın haberleri, itfaiye müdahaleleri
🟡Elektrik KesintisiPlanlı/plansız elektrik kesintileri
🟣HırsızlıkHırsızlık, dolandırıcılık olayları
🟢Kültürel EtkinlikFestival, konser, sergi, tören

Sınıflandırma yöntemi: Ağırlıklı keyword matching (bigram/trigram + exclusion kuralları). Güçlü keyword (10p) + destek keyword (5p) + exclusion → false positive önleme.


⚙️ Temel Özellikler

🔄 Web Scraping

  • 5 yerel haber kaynağından RSS + google-news.xml ile otomatik veri çekme
  • İlk yüklemede son 3 günlük haberler, sonrasında 15 dk'da bir güncelleme
  • Rate limiting (SemaphoreSlim, rastgele gecikme) ile ban koruması
  • Retry mantığı (3 deneme, exponential backoff)

🏷️ Otomatik Sınıflandırma

  • Ağırlıklı keyword matching (bigram/trigram dahil)
  • Güçlü, destekleyici ve exclusion kuralları
  • False positive önleme: "oruç kazası" → trafik kazası DEĞİL

🔁 Duplicate Tespiti (Embedding Tabanlı)

  • İki alternatif yöntem:
  • Cosine Similarity ≥ 0.90 → aynı haber → kaynaklar tek kayıtta birleştirilir

📍 Konum Çıkarımı & Geocoding

  • 12 Kocaeli ilçesi + mahalle/cadde sözlüğü ile metin taraması
  • Google Geocoding API + MongoDB cache (aynı adres için tekrar API çağrısı yok)

🗺️ Google Maps Görselleştirme

  • Kategori bazlı renkli marker'lar (🔴🟠🟡🟣🟢)
  • Bilgi penceresi: başlık, tarih, tüm kaynaklar, "Habere Git" butonu

🔍 Filtreleme

  • Haber türü, ilçe, tarih aralığı
  • Dinamik filtreleme (sayfa yenilenmeden)

🚀 Kurulum

Gereksinimler

AraçMinimum Versiyon
.NET SDK9.0
Node.js18+
MongoDB7.0+ (servis olarak kur)
Google API KeyMaps JavaScript + Geocoding API

Backend

cd backend
dotnet restore
cd KocaeliNews.API
cp appsettings.Development.example.json appsettings.Development.json
# appsettings.Development.json → GeocodingApiKey'i kendi key'inle değiştir

appsettings.json → MongoDB + genel ayarlar (değiştirme). appsettings.Development.json → sadece API key (gitignore'da). .NET bu ikisini otomatik birleştirir.

Frontend

cd frontend
npm install
echo VITE_GOOGLE_MAPS_API_KEY=SENIN_MAPS_API_KEYIN > .env.local

▶️ Çalıştırma

# MongoDB çalışıyor mu?
Get-Service MongoDB   # Status: Running olmalı

# Terminal 1: Backend
cd backend && dotnet run --project KocaeliNews.API
# → http://localhost:5062

# Terminal 2: Frontend
cd frontend && npm run dev
# → http://localhost:5173

📡 API Endpointleri

MetodEndpointAçıklama
GET/api/newsTüm haberleri listele (varsayılan: son 3 gün)
GET/api/news?newsType=Fire&district=GebzeFiltrelenmiş haberler
GET/api/news/mapSadece koordinatlı haberler (harita için)
POST/api/scraping/startScraping işlemini başlat (ScrapingResult nesnesi döner)
GET/api/scraping/test-scraper?source={name}Sadece belirtilen siteden veri çeker, DB'ye yazmaz
GET/api/scraping/test-pipeline?source={name}Belirtilen siteden veri çeker ve sınıflandırır, DB'ye yazmaz
GET/api/scraping/sourcesSistemde kayıtlı olan aktif scraper'ları listeler

Kocaeli Üniversitesi · Bilgisayar Mühendisliği · 2025-2026

Languages

C#

77.7%

JavaScript

12.7%

CSS

9.4%