Skip to content

yunusornek/SiteCluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

[EN] Website Clustering and Analysis Tool # Website Clustering and Analysis Tool

The purpose of this project is to discover websites with the same templates among a list of URLs or subdomains.

This tool clusters and analyzes websites based on their CSS files. It asynchronously downloads website content, extracts CSS file names, calculates the Jaccard similarity between sites, and groups similar sites into clusters. Additionally, it supports filtering websites based on finding a keyword in the page title or entire HTML content.

Table of Contents

Features

  • CSS-Based Clustering: Extracts CSS files from websites and clusters them based on Jaccard similarity.
  • Keyword Filtering: Filters websites based on a keyword found in the title or HTML content.
  • Subdomain Discovery: Queries the subdomains of a target domain using subfinder.
  • Real-Time Progress Display: Shows real-time progress and clustering results in the terminal.
  • JSON Output: Saves clustering results in a clusters.json file for analysis.

Requirements

Installation

  1. Clone the Repository

    git clone https://github.com/yunusornek/SiteCluster.git
    cd website-clustering-tool
  2. Create a Virtual Environment (Optional)

    python -m venv venv
    source venv/bin/activate  # For Windows: `venv\Scripts\activate`
  3. Install the Required Packages

    pip install -r requirements.txt

Usage

Basic Usage

python script.py -dl urls.txt
[TR] Web Sitesi Kümeleme ve Analiz Aracı # Web Sitesi Kümeleme ve Analiz Aracı

Bu projenin amacı bir url listsi veya subdomainler arasındaki aynı template sahip websitelerini keşfetmektir.

Bu araç, web sitelerini CSS dosyalarını kullanarak kümeler ve analiz eder. Web sitesi içeriklerini asenkron olarak indirir, CSS dosya isimlerini çıkarır, siteler arasındaki Jaccard benzerliğini hesaplar ve benzer siteleri kümeler halinde gruplandırır. Ayrıca, bir anahtar kelimeyi sayfa başlığında veya tüm HTML içeriğinde bulmaya dayalı olarak siteleri filtreleme desteği sunar.

İçindekiler

Özellikler

  • CSS Tabanlı Kümeleme: Web sitelerinden CSS dosyalarını çıkarır ve Jaccard benzerliğine göre kümeler.
  • Anahtar Kelime Filtreleme: Web sitelerini başlık veya HTML içeriğinde bir anahtar kelimeye göre filtreler.
  • Alt Alan Adı Bulma: subfinder kullanarak bir hedef alan adının alt alan adlarını sorgular.
  • Gerçek Zamanlı İlerleme Gösterimi: Terminal'de anlık olarak ilerleme durumu ve kümeleme sonuçlarını gösterir.
  • JSON Çıktısı: Kümeleme sonuçlarını analiz için clusters.json dosyasına kaydeder.

Gereksinimler

  • Python 3.7+
  • Subfinder: -d veya --domain seçeneği kullanıldığında gereklidir.
  • ProjectDiscovery/subfinder adresinden kurabilirsiniz.

Kurulum

  1. Depoyu Klonlayın

    git clone https://github.com/yunusornek/SiteCluster.git
    cd website-clustering-tool
  2. Sanal Ortam Oluşturun (İsteğe Bağlı)

    python -m venv venv
    source venv/bin/activate  # Windows için: `venv\Scripts\activate`
  3. Gerekli Paketleri Yükleyin

    pip install -r requirements.txt

Kullanım

Temel Kullanım

python script.py -dl urls.txt

Örnekler

  • Varsayılan ayarlarla web sitelerini kümeler

    python script.py -dl urls.txt
  • Bir alan adının alt alan adlarını kümeler

    python script.py -d example.com
  • Eşzamanlılık değerini 20 iş parçacığı olarak ayarlayın

    python script.py -dl urls.txt -t 20
  • Benzerlik eşik değerini 0.6 olarak ayarlayın

    python script.py -dl urls.txt -th 0.6
  • Başlıkta "ankara" kelimesini içeren siteleri filtreleyin

    python script.py -dl urls.txt -f "ankara" -T
  • HTML içeriğinde "ankara" kelimesini içeren siteleri filtreleyin

    python script.py -dl urls.txt -f "ankara" -H
  • İstek zaman aşımını 15 saniye olarak ayarlayın

    python script.py -dl urls.txt -to 15

Argümanlar

  • -dl, --domain-list: URL listesinin bulunduğu dosya yolu (örneğin, urls.txt). -d ile karşılıklı dışlayıcıdır.
  • -d, --domain: Hedef alan adının alt alan adlarını bulur (örneğin, example.com). -dl ile karşılıklı dışlayıcıdır.
  • -t, --threads: Eşzamanlı istek sayısı (varsayılan: 10).
  • -th, --threshold: Kümeleme için benzerlik eşiği (varsayılan: 0.5). Aralık: 0 ile 1 arasında olmalıdır.
  • -f, --filter-word: Web sitelerini filtrelemek için anahtar kelime (örneğin, "erzurum").
  • -T, --title: Anahtar kelimeyi sayfa başlığında arar. -f ile kullanılır.
  • -H, --html: Anahtar kelimeyi HTML içeriğinde arar. -f ile kullanılır.
  • -to, --timeout: İstek zaman aşımı süresi (varsayılan: 10 saniye).

Çıktı

  • Konsol Görünümü: İlerleme durumu, işlenen URL sayısı, canlı alan adları, kümeler ve filtrelenmiş kümeler anlık olarak gösterilir.

  • clusters.json: Kümeleme verilerini içeren JSON dosyası.

    {
      "clusters": [
        ["https://example.com", "https://example.org"],
        ["https://another-example.com"]
      ],
      "filtered_clusters": [
        ["https://filtered-example.com"]
      ]
    }
  • error.log: Hata mesajlarını ve hata ayıklama bilgilerini içeren log dosyası.

Loglama

Araç, önemli olayları ve hataları error.log dosyasına kaydeder.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages