🌐 Website Grabber

Ratsinformations-System Crawler für Herzogenrath

📋 Projektbeschreibung

Ein Python-basierter Web-Crawler, der speziell für das Ratsinformations-System der Stadt Herzogenrath entwickelt wurde. Das Tool extrahiert Dokumente, PDFs und Vorlagen von der öffentlichen Verwaltungsplattform und speichert sie lokal zur weiteren Verarbeitung.

🛠️ Technologie-Stack

🐍 Python 3.12 🌐 Selenium WebDriver 📄 BeautifulSoup4 🔗 Requests 📊 tqdm 🔧 Wicket Framework Parsing
1
Hauptdatei
~350
Code-Zeilen
2
Crawling-Methoden
3
PDF-Quellen

✨ Hauptfunktionen

📁 Projektstruktur

Verzeichnisstruktur
website grabber/
├── 📄 main.py              # Hauptanwendung
├── 📁 ratsinfo_herzogenrath/  # Ausgabeverzeichnis
│   ├── 📁 html/            # Heruntergeladene HTML-Seiten
│   └── 📁 pdfs/            # Extrahierte PDF-Dokumente
├── 📁 venv/                # Python Virtual Environment
├── 📁 .git/                # Git Repository
└── 📁 .idea/               # IntelliJ IDEA Konfiguration

💻 Code-Architektur

Der Crawler ist als Python-Klasse HerzogenrathCrawler implementiert und bietet:

main.py - Kernmethoden
class HerzogenrathCrawler:
    def __init__(self, output_dir, use_selenium=False):
        # Session, Driver, Tracking-Sets initialisieren
        self.session = self.get_session()
        self.visited_urls = set()
        self.pdf_hashes = set()

    def setup_selenium(self):
        # Chrome WebDriver mit headless-Optionen
        chrome_options.add_argument('--headless')

    def download_pdf(self, pdf_url, vorlage_id):
        # PDF-Download mit MD5-Duplikatscheck
        content_hash = hashlib.md5(content).hexdigest()

    def crawl_vorlage_detail(self, url, vorlage_id):
        # Extrahiert PDFs von Vorlagen-Detailseiten

    def crawl_vorlagen_list_selenium(self, start_url):
        # Selenium-basiertes Crawling mit Fortschrittsbalken

🔧 Abhängigkeiten

requirements.txt (implizit)
requests          # HTTP-Anfragen
beautifulsoup4    # HTML-Parsing
tqdm              # Fortschrittsbalken
selenium          # Browser-Automatisierung
lxml              # XML/HTML-Parser (BS4-Backend)

🎯 Ziel-Website

URL: ratsinfo.herzogenrath.de

Die Anwendung crawlt die öffentliche Ratsinformationsplattform und extrahiert:

📊 Projektdetails

Projektpfad D:\arbeit\git\website grabber
Hauptdatei main.py
Python-Version 3.12 (venv)
Letzte Änderung Scan vom 29.04.2025
Host windows-3060 (192.168.178.71)