
Web-Scraping leicht gemacht
SCRAPPER ist kein Scraper – es ist ein SESSION OBSERVER, der Ihre echten Browserdaten erfasst und für jedes Automatisierungstool bereitstellt.
Basierend auf dem BertUI React Framework
GitHub: BunElysiaReact/SCRAPY
Keine Domain. Keine Cloud. Alles lokal. Alles Ihnen.

Jedes Webautomatisierungstool – Puppeteer, Playwright, Selenium, sogar curl – hat die gleichen Herausforderungen:
Das eigentliche Problem: All diese Tools versuchen, einen Menschen nachzuahmen. Aber sie raten, wie ein echter Mensch aussieht.
SCRAPPER scraped nicht. Es gibt Ihnen die ECHTEN Daten, die SIE für erfolgreiches Scraping brauchen.
SIE SCRAPPER
│ │
├── Brave/Chrome/Firefox mit Erweiterung öffnen ────►│
│ │
├── In Websites einloggen, die Sie automatisieren ──►│ erfasst:
│ │ • Cookies
├── Normal surfen, auf Schaltflächen klicken ───────►│ • Tokens
│ │ • Fingerprint
└── Surfen beendet ─────────────────────────────────►│ • API-Anfragen
│ • DOM-Struktur
IHR SKRIPT ──── GET /api/v1/session/all ────► SCRAPPER API (localhost:8080)
◄── { cookies, tokens, fingerprint } ────────────────────────┘
│
▼
Puppeteer / Playwright / Selenium / Python requests / curl
│
▼
✅ Authentifizierte Anfragen mit IHRER echten Session

SCRAPPER Erweiterung

Erweiterung registrieren

Das obige Skript hat mit SCRAPPER eine echte claude.ai-Session erfasst und dann Nachrichten direkt über die API gesendet – null Login-Code, null Puppeteer, null Browser-Automatisierung.
📦 Session-Daten
├── 🍪 Cookies (einschließlich HttpOnly, Secure, alle Domains)
├── 💾 localStorage & sessionStorage
├── 🔑 Auth-Tokens (Bearer, JWT, CSRF, benutzerdefiniert)
└── 📨 Alle HTTP-Header
🖥️ Browser-Fingerprint
├── 📱 User-Agent
├── 🖼️ Bildschirmauflösung & Farbtiefe
├── 🌍 Zeitzone & Spracheinstellungen
└── 📨 Vollständiger Headersatz (Accept, Accept-Language usw.)
📡 Netzwerkverkehr
├── 📤 Alle HTTP-Anfragen (URLs, Methoden, Header, POST-Daten)
├── 📥 Alle HTTP-Antworten (Status, Header, Bodies)
└── 🔄 WebSocket-Frames
🌳 DOM-Zustand
├── 📄 DOM-Schnappschüsse
├── 🎯 Live-Selektor-Tests
└── 🗺️ DOM-Karten (alle Tags, Klassen, IDs)
Nach der Erfassung stellt SCRAPPER alles über eine einfache REST-API unter http://localhost:8080 bereit.
curl -fsSL https://raw.githubusercontent.com/BunElysiaReact/SCRAPY/main/install.sh | bash
# Schritt 1 – Erweiterung in Brave laden:
# brave://extensions → Entwicklermodus EIN → Entpackte Erweiterung laden
# → auswählen: ~/.scrapper/extension/brave/
# Schritt 2 – Ihre Erweiterungs-ID registrieren
scrapper-register-ext IHRE_ERWEITERUNGS_ID
# Schritt 3 – SCRAPPER starten
scrapper-start
# Schritt 4 – Dashboard öffnen
# http://localhost:8080
# Repository klonen
git clone https://github.com/BunElysiaReact/SCRAPY.git ~/scrapper
cd ~/scrapper
# C Native Host bauen
gcc -O2 -o linux/c_core/native_host/debug_host linux/c_core/native_host/debug_host.c -lpthread
# Rust-Selektor-Engine bauen
cd linux/rust_finder && cargo build --release && cd ../..
# API-Server starten
cd linux/python_api && python3 api.py
Öffnen Sie http://localhost:8080 → Dashboard bereit.
irm https://raw.githubusercontent.com/BunElysiaReact/SCRAPY/main/install.ps1 | iex
⚠️ Führen Sie PowerShell als Administrator aus, damit die native Messaging-Registrierung korrekt funktioniert.
%USERPROFILE%\.scrapper\
├── bin\
│ ├── debug_host.exe ← C Native Messaging Host
│ ├── scraper_cli.exe ← CLI-Client
│ ├── rust_finder.exe ← Schnelle HTML-Selektor-Engine
│ ├── scrapper-start.bat ← Alles starten
│ └── scrapper-stop.bat ← Alles stoppen
├── data\ ← Alle erfassten Session-Daten
├── logs\ ← Host-Protokolle
├── python_api\
│ └── api.py ← REST-API-Server
├── extension\
│ ├── brave\ ← In Brave / Chrome / Edge laden
│ └── firefox\ ← In Firefox laden
└── ui\scrapperui\ ← Dashboard-Quellcode
brave://extensions oder chrome://extensions~/.scrapper/extension/brave/scrapper-register-ext IHRE_IDGleich wie Brave/Chrome – Edge basiert auf Chromium, verwenden Sie den Ordner extension/brave/.
about:debugging → Dieses Firefox~/.scrapper/extension/firefox/manifest.json⚠️ Firefox erfasst Cookies, Header, localStorage – aber keine CDP-Anfragekörper.
from curl_cffi import requests
API = "http://localhost:8080"
domain = "example.com"
cookies_raw = requests.get(f"{API}/api/v1/session/cookies?domain={domain}").json()
fp = requests.get(f"{API}/api/v1/fingerprint?domain={domain}").json()
session = requests.Session(impersonate="chrome120")
for c in cookies_raw:
session.cookies.set(c["name"], c["value"], domain=c.get("domain", domain).lstrip("."))
session.headers.update({"User-Agent": fp.get("userAgent", "")})
response = session.get(f"https://{domain}/api/data")
print(response.json())
import requests
session_data = requests.get('http://localhost:8080/api/v1/session/all').json()
s = requests.Session()
s.cookies.update({c['name']: c['value'] for c in session_data['cookies']})
s.headers.update({'User-Agent': session_data['fingerprint']['userAgent']})
response = s.get('https://api.example.com/data')
source <(curl -s http://localhost:8080/api/v1/export/env)
curl -X POST "https://api.example.com/upload" \
-H "Authorization: Bearer $SCRAPPER_BEARER_TOKEN" \
-b "$SCRAPPER_COOKIES" \
-F "[email protected]"
import requests
from playwright.async_api import async_playwright
session = requests.get('http://localhost:8080/api/v1/session/all').json()
async with async_playwright() as p:
context = await p.chromium.launch_persistent_context(
user_data_dir="./profile",
user_agent=session['fingerprint']['userAgent'],
)
await context.add_cookies(session['cookies'])
page = await context.new_page()
await page.goto('https://example.com')
const session = await fetch('http://localhost:8080/api/v1/session/all').then(r => r.json());
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setCookie(...session.cookies);
await page.setUserAgent(session.fingerprint.userAgent);
await page.goto('https://example.com/dashboard');
SCRAPPER Live-Dashboard
Öffnen Sie http://localhost:8080:
# Neueste Session-Daten exportieren
curl -s "http://localhost:8080/api/v1/bulk/all?format=jsonl" > session.jsonl
# In Ihrem Scraper verwenden
python3 my-scraper.py --session session.jsonl
# session_refresh.py – Wöchentliche Session-Aktualisierungspipeline
import requests, schedule, time
def refresh_session():
notify_user("Bitte loggen Sie sich in Ihrem Browser in die Ziel-Websites ein")
time.sleep(300) # 5 Minuten für den Benutzer zum Surfen
data = requests.get('http://localhost:8080/api/v1/bulk/all?format=json').json()
with open(f'session_{int(time.time())}.json', 'w') as f:
import json; json.dump(data, f)
schedule.every().monday.at("09:00").do(refresh_session)
while True:
schedule.run_pending()
time.sleep(60)
SCRAPPER von BertUI – Der Session Observer für Webautomatisierung
🔍 Ihren Browser beobachten, damit Sie es nicht müssen
⭐ Star das Repository, wenn SCRAPPER Ihnen hilft – es hilft anderen, es zu finden!
| Herausforderung | Warum es schwierig ist |
|---|
| Authentifizierung | Manuelles Skripten von Logins für jede Website ist mühsam und fragil |
| Session-Zustand | Cookies laufen ab, Tokens rotieren, localStorage wird gelöscht |
| Reverse Engineering | Stunden in den DevTools, um API-Muster zu verstehen |
| Bot-Erkennung | TLS-Fingerabdrücke, Browser-Entropie, Cloudflare, hCaptcha |
| Setup-Komplexität | Kampf mit Headless-Browsern, Proxys und Stealth-Plugins |
| SCRAPPER IST... | SCRAPPER IST NICHT... |
|---|
| 🔍 Ein Session Observer, der IHREN echten Browser beobachtet | ❌ Ein Ersatz für Puppeteer/Playwright/Selenium |
| 💾 Ein Datenerfassungstool, das Ihre tatsächliche Session speichert | ❌ Ein Tool, das Websites für Sie scraped |
| 📡 Ein lokaler API-Server, der Ihre erfassten Daten bereitstellt | ❌ Ein gehosteter Dienst oder eine Cloud-Plattform |
| 🧠 Ein Reverse-Engineering-Assistent, der versteckte APIs offenlegt | ❌ Ein magischer "Scrape alles"-Knopf |
| 🎯 Ein visueller Debugger zum Verständnis der Seitenstruktur | ❌ Ein No-Code-Automatisierungs-Builder |
| Vorteil | Warum es wichtig ist |
|---|
| Umgeht erweiterte Bot-Erkennung | Verwendet curl_cffi, um den TLS-Fingerabdruck eines echten Browsers zu imitieren (z. B. Chrome 120) – wird nicht als automatisiert erkannt |
| 97% Erfolgsquote | Ziel sind interne API-Routen, nicht die visuelle Benutzeroberfläche – immun gegen CSS-Änderungen, bewegliche Schaltflächen oder Layout-Updates |
| Geringer Ressourcenverbrauch | ~20 MB RAM vs. 500 MB+ bei Puppeteer/Selenium. Keine Browser-Engine läuft |
| Unsichtbare Authentifizierung | Nutzt Ihre vorhandene, vom Menschen verifizierte Session – kein Login-Flow, keine CAPTCHAs |
| Synchronisiert mit echtem Browser | Nachrichten/Aktionen aus Skripten erscheinen in Ihrem echten Browser-Tab, wenn Sie aktualisieren |
| Sprachunabhängig | Session-API funktioniert mit Python, Go, Rust, Node, curl – alles, was HTTP-Anfragen stellen kann |
| Nachteil | Was es bedeutet |
|---|
| Spröde Session-Lebensdauer | Vollständig abhängig von einer aktiven Browser-Session – läuft ab, wenn Sie sich ausloggen |
| Abhängig von internen APIs | Verwendet undokumentierte Endpunkte, die sich ohne Vorankündigung ändern können |
| Erfordert Setup-Infrastruktur | Nicht eigenständig – benötigt nativen Host und Browser-Erweiterung gleichzeitig |
| Kontorisiko | Verwendet Ihre echte Identität. Aggressives Raten-Limit kann zu einem echten Kontobann führen |
| Lernkurve | Netzwerkverkehr muss gelesen werden, um die korrekten API-Payloads zu verstehen |
| Einzelgerätebindung | device-id ist an eine erfasste Session gebunden – nicht einfach zwischen Geräten teilbar |
| Endpunkt | Beschreibung |
|---|
GET /api/v1/session/cookies?domain=example.com | Alle Cookies für eine Domain |
GET /api/v1/session/localstorage?domain=example.com | localStorage-Daten |
GET /api/v1/session/all | Vollständiger Session-Dump |
GET /api/v1/fingerprint | Browser-Fingerprint |
GET /api/v1/tokens/all | Alle extrahierten Tokens |
GET /api/v1/requests/recent?limit=50 | Neueste Netzwerkanfragen |
GET /api/v1/dom/snapshot?url=example.com | DOM-Schnappschuss |
GET /api/v1/export/env | Umgebungsvariablen-Format |
GET /api/v1/bulk/all?format=[json|jsonl|har|csv|txt] | Alles, Ihr Format |
| Tab | Funktion |
|---|
| Live | Echtzeit-Stream aller erfassten Netzwerkereignisse |
| Bodies | HTTP-Antwortkörper – JSON, HTML, SVG, Bilder, mit Vorschau |
| Responses | Alle HTTP-Antworten nach Domain, filterbar nach Flags |
| Intel | Zusammenfassung pro Domain – Tokens, Cookies, Endpunkte, DOM-Karte |
| Tokens | Bearer-Tokens, Task-Tokens, Auth-Cookies, curl-Snippets |
| Endpoints | Alle entdeckten API-Endpunkte mit "Für LLM kopieren" |
| DOM Map | Vollständiger Tag-/Klassen-/ID-Baum – Klick auf ein Element zum automatischen Scrapen |
| Find | CSS-Selektoren gegen echtes gerendertes HTML testen |
| Nav | Navigieren + Tabs verfolgen, Cookies dumpen, HTML erfassen |
| Queue | Stapelverarbeitung von URL-Listen mit konfigurierbaren Verzögerungen |
| Bereich | Was wird benötigt |
|---|
| Testen | SCRAPPER auf verschiedenen Websites ausprobieren, Fehler melden |
| Firefox | Helfen, Firefox-Erweiterungs-Workarounds für CDP zu verbessern |
| Windows | Windows-Installer-Randfälle testen |
| Dokumentation | Tutorials für bestimmte Websites oder Anwendungsfälle schreiben |
| Code | Pull-Requests willkommen – insbesondere Fehlerbehebungen |