nordabiz/scripts
Maciej Pienczyn c8eb0829d9 auto-claude: 4.2 - Add CLI argument parsing, progress logging, and error handling
Enhanced scripts/seo_audit.py with comprehensive CLI improvements:

CLI Arguments:
- --company-id: Audit single company by ID
- --company-ids: Audit multiple companies (comma-separated)
- --batch: Audit range of companies (e.g., 1-10)
- --all: Audit all companies
- --dry-run: Print results without database writes
- --verbose/-v: Debug output
- --quiet/-q: Suppress progress output
- --json: JSON output for scripting
- --database-url: Override DATABASE_URL env var

Progress Logging:
- ETA calculation based on average time per company
- Progress counter [X/Y] for each company
- Status indicators (SUCCESS/SKIPPED/FAILED/TIMEOUT)

Summary Reporting:
- Detailed breakdown by result category
- Edge case counts (no_website, unavailable, timeout, ssl_errors)
- PageSpeed API quota tracking (start/used/remaining)
- Visual score distribution with bar charts
- Failed audits listing with error messages

Error Handling:
- Proper exit codes (0-5) for different scenarios
- Categorization of errors (timeout, connection, SSL, unavailable)
- Database connection error handling
- Quota exceeded handling
- Batch argument validation with helpful error messages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 03:11:22 +01:00
..
company-data-collector.js Initial commit 2026-01-01 14:01:49 +01:00
pagespeed_client.py auto-claude: 2.1 - Create scripts/pagespeed_client.py with GooglePageSpeedClient 2026-01-08 02:00:37 +01:00
README.md Initial commit 2026-01-01 14:01:49 +01:00
seo_analyzer.py auto-claude: 3.2 - Add TechnicalSEOChecker class to scripts/seo_analyzer.py 2026-01-08 02:12:47 +01:00
seo_audit.py auto-claude: 4.2 - Add CLI argument parsing, progress logging, and error handling 2026-01-08 03:11:22 +01:00
social_media_audit.py Initial commit 2026-01-01 14:01:49 +01:00

Norda Biznes - Scripts

Automatyczne skrypty do zbierania i przetwarzania danych o firmach członkowskich.


📁 Pliki

company-data-collector.js

Główny agent zbierający dane o firmach z różnych źródeł.

Funkcje:

  • 🔍 Wyszukiwanie firm w ALEO.com (NIP, REGON, KRS)
  • 🌐 Znajdowanie stron WWW przez Google
  • 📊 Ekstrakcja danych ze stron firmowych
  • 💾 Automatyczny zapis do data/companies-full.json
  • 📝 Generowanie logów i raportów

🚀 Użycie

Podstawowe uruchomienie

node scripts/company-data-collector.js

Przetworzy wszystkie 80 firm z data/companies-basic.json.

Z limitowaniem

# Przetw

órz tylko 5 pierwszych firm (test)
node scripts/company-data-collector.js --limit 5

# Przetwórz 10 firm
node scripts/company-data-collector.js --limit 10

Pomijanie już przetworzonych

# Przetwórz tylko firmy, których nie ma w companies-full.json
node scripts/company-data-collector.js --skip-processed

# Kombinacja: pomiń przetworzone, limit 20
node scripts/company-data-collector.js --skip-processed --limit 20

Pomoc

node scripts/company-data-collector.js --help

📊 Output

Pliki wyjściowe:

  1. data/companies-full.json

    • Pełne dane wszystkich przetworzonych firm
    • Aktualizowany po każdej firmie
    • Format JSON z metadanymi
  2. data/collection-log.md

    • Szczegółowy log przetwarzania
    • Dla każdej firmy: timestamp, kroki, błędy
    • Markdown format
  3. Konsola

    • Real-time progress
    • Raport końcowy ze statystykami

Przykładowy output konsoli:

🤖 Norda Biznes - Company Data Collector Agent
================================================

📊 Załadowano 80 firm do zbadania

[1/80] Przetwarzanie: PIXLAB
────────────────────────────────────────────────────────────
📡 KROK 1: Wyszukiwanie w ALEO.com...
   ✅ Znaleziono dane urzędowe
🔍 KROK 2: Szukanie strony WWW...
   ✅ Znaleziono stronę: https://pixlab.pl
🌐 KROK 3: Pobieranie danych ze strony...
   ✅ Pobrano dane ze strony
✅ Pełne dane zebrane

[2/80] Przetwarzanie: KORNIX
...

============================================================
📊 RAPORT KOŃCOWY
============================================================

Przetworzono:    80/80 firm
Pełne dane:      56 (70%)
Częściowe dane:  20 (25%)
Niepowodzenia:   4 (5%)

Czas działania:  16.5 minut
Średnio na firmę: 0.21 min

============================================================

⚙️ Konfiguracja

W pliku company-data-collector.js:

const CONFIG = {
  delayBetweenRequests: 2000,  // 2 sekundy między firmami
  maxRetries: 3,               // Maksymalna liczba ponownych prób
  timeout: 30000              // Timeout 30 sekund
};

Źródła danych:

Agent próbuje pobrać dane z:

  1. ALEO.com - dane urzędowe (NIP, REGON, KRS)
  2. Google Search - URL strony WWW
  3. Strony firmowe - kontakt, usługi, kompetencje

🔧 Wymagania

Node.js packages:

# Podstawowe (built-in):
- fs
- path

# Opcjonalne (dla pełnej funkcjonalności):
npm install puppeteer  # Web scraping
# lub
npm install playwright # Web scraping (zalecane)
# lub
npm install cheerio axios # Prosty scraping HTML

API Keys (opcjonalne):


📝 Status Implementacji

Zaimplementowane:

  • Struktura agenta
  • CLI interface (argumenty, pomoc)
  • Wczytywanie danych z companies-basic.json
  • Zapis do companies-full.json
  • Generowanie logów
  • Raportowanie postępu
  • Ocena jakości danych
  • Statystyki i raporty

🔄 Do zaimplementowania:

  • Rzeczywiste wyszukiwanie w ALEO.com

    • Wymaga: puppeteer/playwright
    • Metoda: searchAleo(companyName)
  • Rzeczywiste wyszukiwanie w Google

    • Wymaga: Google Custom Search API
    • Metoda: findWebsite(companyName)
  • Rzeczywisty web scraping

    • Wymaga: puppeteer/cheerio
    • Metoda: scrapeWebsite(url)
  • Automatyczna aktualizacja data-sources.md

    • Metoda: updateDataSources()

🎯 Roadmap

Faza 1: Ręczne zbieranie danych (OBECNA)

  • Struktura agenta gotowa
  • Pliki JSON i MD przygotowane
  • 🔄 Ręczne wypełnianie danych (copy-paste z researchu)

Faza 2: Semi-automatyczne zbieranie

  • Implementacja scrapingu ALEO.com
  • Znajdowanie stron WWW przez Google API
  • Podstawowy scraping stron (kontakt)

Faza 3: Pełna automatyzacja

  • AI-assisted data extraction
  • Automatyczna walidacja danych
  • Scheduled updates (cron)
  • Email notifications

🐛 Troubleshooting

Agent się nie uruchamia

# Sprawdź czy Node.js jest zainstalowany:
node --version  # Powinno pokazać v14+ lub nowsze

# Sprawdź uprawnienia:
chmod +x scripts/company-data-collector.js

# Uruchom z verbose:
node scripts/company-data-collector.js --limit 1

Brak danych w companies-full.json

# Sprawdź czy plik companies-basic.json istnieje:
ls -la data/companies-basic.json

# Sprawdź format JSON:
cat data/companies-basic.json | python -m json.tool

"Cannot find module"

# Zainstaluj zależności:
npm install

# Lub jeśli używasz yarn:
yarn install

📚 Dokumentacja

Struktura danych firmy:

Patrz: data/companies-full.json - przykłady z pełnymi danymi

Log format:

Patrz: data/collection-log.md - przykład po uruchomieniu agenta

Źródła danych:

Patrz: data/data-sources.md - lista wszystkich źródeł


👨‍💻 Development

Testowanie:

# Test na 1 firmie:
node scripts/company-data-collector.js --limit 1

# Test na 5 firmach:
node scripts/company-data-collector.js --limit 5

# Dry run (bez zapisu):
# TODO: Dodać flagę --dry-run

Debugowanie:

Odkomentuj linie z console.log w metodach:

  • searchAleo()
  • findWebsite()
  • scrapeWebsite()

📞 Support

Pytania lub problemy? Kontakt:


Wersja: 1.0 Ostatnia aktualizacja: 2025-11-23 Autor: Norda Biznes Hub Development Team