- Zmiana nazwy: "Norda Biznes Hub" → "Norda Biznes Partner" - Aktualizacja modelu AI: Gemini 2.0 Flash → Gemini 3 Flash - Zachowano historyczne odniesienia w timeline i dokumentacji Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
303 lines
6.3 KiB
Markdown
303 lines
6.3 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
node scripts/company-data-collector.js
|
|
```
|
|
|
|
Przetworzy wszystkie 80 firm z `data/companies-basic.json`.
|
|
|
|
### Z limitowaniem
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```javascript
|
|
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:
|
|
|
|
```bash
|
|
# 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):
|
|
|
|
- **Google Custom Search API** - dla automatycznego znajdowania stron WWW
|
|
- Instrukcje: https://developers.google.com/custom-search/v1/overview
|
|
|
|
---
|
|
|
|
## 📝 Status Implementacji
|
|
|
|
### ✅ Zaimplementowane:
|
|
|
|
- [x] Struktura agenta
|
|
- [x] CLI interface (argumenty, pomoc)
|
|
- [x] Wczytywanie danych z companies-basic.json
|
|
- [x] Zapis do companies-full.json
|
|
- [x] Generowanie logów
|
|
- [x] Raportowanie postępu
|
|
- [x] Ocena jakości danych
|
|
- [x] 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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"
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
- Email: biuro@norda-biznes.info
|
|
- Issue: Utwórz issue w repo
|
|
|
|
---
|
|
|
|
**Wersja:** 1.0
|
|
**Ostatnia aktualizacja:** 2025-11-23
|
|
**Autor:** Norda Biznes Partner Development Team
|