Web Scraping and OSINT Engine in Rust | Dweve Winnow

Winnow is a Rust source-intelligence and web-scraping engine. Apache-2.0 terms, self-hosted; the repository publishes in the eighth release round.

Eine Richtlinie und ein Ausführungsprotokoll

Typisierte Ergebnisse für das nächste System

Quellenregeln, die entlang der Route durchgesetzt werden

Wissensverwaltung über Winnow-gesammelte Quellen.

Gesammelte Daten für schnellen Abruf indizieren.

Winnow-Ausgabe in inhaltsadressierte Bäume parsen.

Beginnen Sie mit einer wiederkehrenden Frage. Winnow verwandelt sie in eine benannte Route mit expliziten Quellen, gemeinsamen Abrufregeln, typisierter Ausgabe und einem Ausführungsprotokoll, das das nächste System einsehen kann.

Die Quelle ist nicht das Zentrum. Die Frage ist es

In 66 Kategorien. Plus 28 Engines, 325 Collector.

Core hat keine Laufzeitabhängigkeiten. Stealth-Browser ist optional, Python.

Das Projektblatt dokumentiert, was geliefert wird: eine kompakte Rust-Binärdatei, den Scraper- und Collector-Katalog, Ausgabeformate, Anfragesteuerung, Sprachbindungen und die vier Integrationsflächen, die vom Rest des Stacks genutzt werden.

Führen Sie Winnow als einzelne Binärdatei aus, betten Sie es als Rust-Crates ein, betreiben Sie es als axum-HTTP-Dienst oder bauen Sie es für den Browser und Edge. Dieselben Scraper und dieselbe Ausgabeform funktionieren in allen vier Modi.

Vorgefertigte Scraper für Quellen, die Analysten bereits nutzen, von Behörden- und Wissenschaftsportalen bis hin zu Nachrichten, Finanzen und offenen Daten. Jeder Scraper ist eine typisierte Rust-Struktur. Benutzerdefinierte Scraper fügen sich neben den integrierten ein und folgen demselben Ausgabevertrag.

Betreiber entscheidet über Rechtsgrundlage

Pro Anfrage: Quelle, URL, Zeitstempel, Status, Inhalts-Hash.

Private Netzwerkbereiche sind in jeder URL-Eingabe blockiert.

Pro-Domain-Token-Buckets, abgestimmt auf die dokumentierte Richtlinie jeder Quelle.

Standardmäßig verweigern. Nicht zwischengespeicherte Domains werden abgelehnt, bis robots.txt abgerufen wurde.

Winnow setzt robots.txt mit einer Deny-by-Default-Richtlinie, Pro-Domain-Ratenbegrenzungen, SSRF-Schutz, GDPR-Pseudonymisierung und pro Anfrage Audit-Logging als Designbeschränkungen durch, nicht als optionale Einstellungen. Was außerhalb der Kontrolle von Winnow liegt: die Rechtsgrundlage des Betreibers für die Datenerfassung, Entscheidungen zur Datenminimierung und nachgelagerte Aufbewahrungsentscheidungen. Diese Seite beansprucht keine GDPR-Zertifizierung, da eine Bibliothek diese Entscheidung nicht in Ihrem Namen treffen kann.

Text, JSON, JSONL, CSV oder HTML. Pipeline-freundlich.

CSS-Selektoren extrahieren typisierte Felder aus dem DOM.

Zuerst einfaches HTTP, dann Stealth-HTTP, dann nur bei Blockierung ein Browser.

28 Suchmaschinen werden parallel abgefragt, Ergebnisse zusammengeführt und bewertet.

Eine Abfrage wird über vier Stufen zu strukturierten Datensätzen. Die Entdeckung durchsucht 28 Engines parallel. Der Abruf eskaliert von einfachem HTTP über TLS-Fingerprint-Anfragen bis zu einem Stealth-Browser, nur wenn eine Website aktiv blockiert. Das Parsen führt typisierte Scraper über das DOM aus. Die Ausgabe schreibt eines von fünf Formaten nach stdout.

Jede Suchmaschine hat ihre eigene API, Kontingente und Wrapper.

Rotationsdienste fügen separate Abrechnung und IP-Qualitätsschwankungen hinzu.

Selenium oder Playwright fügt eine separate Betriebsfläche und Ressourcenkosten hinzu.

Seitenabhängiger, fragiler Code, der bei Markup-Änderungen still bricht.

Die meisten Datensammlungs-Stacks kombinieren Scraper, Headless-Browser, Proxy-Dienste, Such-Wrapper und eigene Wartungsskripte. Die Klebeschicht wird zum Projekt. Jedes Werkzeug hat seine eigene Betriebsfläche, sein eigenes Abrechnungsmodell und seine eigenen Höflichkeitsannahmen.

Rechtsgrundlage, Minimierung und Aufbewahrung bleiben bei Ihnen. Winnow zeichnet diese Entscheidung auf; es trifft sie nicht für Sie.

Jede Anfrage wird mit Quelle, Adresse, Zeit und Ergebnis protokolliert.

Identifikatoren können bei der Erfassung pseudonymisiert werden, nicht roh durchgetragen.

Robots-Richtlinie und domainspezifische Ratenlimits werden ab der ersten Anfrage durchgesetzt.

Das Sammeln von Webdaten birgt echte Risiken: blockiert zu werden, Umgang mit personenbezogenen Daten, Anfragen an unsichere Adressen und keine Aufzeichnung darüber, was passiert ist. Winnow behandelt jedes dieser Risiken von Anfang an, mit Höflichkeitsregeln, Pseudonymisierung, Schutz vor unsicheren Zielen und einem Protokoll pro Anfrage. Was es nicht tut, ist so zu tun, als würde es Ihre rechtlichen Entscheidungen treffen. Ihre Rechtsgrundlage, wie viel Sie aufbewahren und wie lange Sie es aufbewahren, bleibt Ihre Entscheidung, und wir erheben keinen Zertifizierungsanspruch, den eine Bibliothek nicht ehrlich erheben kann.

Den Stack in eine Binärdatei zu falten bedeutet eine Sache zu lernen, auszuführen und zu patchen, statt fünf plus deren Nähte.

Fragile seitenabhängige Scraper und die Klebeskripte, die den Stack zusammenhalten, verbrauchen Monat für Monat leise Ingenieurszeit.

Proxy-Rotation und Suchkontingente werden nach Nutzung abgerechnet. Eine selbst gehostete Binärdatei auf Infrastruktur, die Sie bereits bezahlen, hat keine überraschende Verkehrsrechnung.

Ein Collection-Stack ist normalerweise über seitenbezogene Scraper, Browser-Automatisierung, Proxy-Handling, Such-Konnektoren und Klebecode fragmentiert. Winnow koordiniert diese beweglichen Teile unter einer einzigen Laufrichtlinie, sodass der Betrieb eine Route patchen, einen Datensatz beobachten und eine Frage wiederholen kann.

Eingaben, Timing, Entscheidungen und Ergebnisse bleiben für Wiederholung und Überprüfung verfügbar.

Parsing, Pseudonymisierung, Normalisierung und Ausgaberegeln sind explizit.

Ratenlimits, Robots-Richtlinie, Wiederholungen und Schutz vor unsicheren Adressen reisen mit der Route.

Jede Suchmaschine, Website, API, jeder Feed und jede Datei wird im Lauf benannt.

Ein wiederkehrender Collection-Job sollte sich nicht wie fünf unzusammenhängende Skripte verhalten. Winnow gibt Discovery, Abruf, Parsing, Normalisierung, Ausgabe und dem Laufprotokoll eine gemeinsame Route, während die Bereitstellung eine separate betriebliche Entscheidung bleibt.

JSON, CSV, Streams, gespeicherte Datensätze oder die Antwortform, die Ihr Workflow erwartet, ausgeben.

Discovery, Abruf, Parsing und Ausgabe teilen sich eine Richtlinie und ein Laufprotokoll.

Suchmaschinen, Websites, APIs, Feeds und Dateien können in denselben Lauf eingehen.

Winnow beginnt mit einer Frage, entscheidet, welche Quellenoberflächen in den Lauf gehören, entdeckt Kandidaten, ruft sie höflich ab, parst das nützliche Material und gibt typisierte Ergebnisse aus. Die Route wird aufgezeichnet, damit dieselbe Arbeit wiederholt und überprüft werden kann.

Es schreibt auf, was es besucht hat, sodass die Antwort bereits da ist, falls jemand fragt.

Es kann vollständig in Europa auf Maschinen laufen, denen Sie vertrauen.

Es befolgt die Regeln, die jede Website festlegt, und wartet, bis es an der Reihe ist.

Jedes Ergebnis behält seine Quellennotizen und Collection-Route, sodass der Dienst zeigen kann, woher die Informationen stammen.

Die ersten Fragen sind vernünftige: Könnte das Ärger verursachen, wohin gehen meine Informationen und wie kann ich sehen, was es getan hat? Hier sind die klaren Antworten. Sorgfalt und Offenheit sind von Anfang an in Winnow eingebaut, nicht als Extras verkauft.

Die Liste ist eine kleine Datei, die Sie speichern und später wieder aufrufen können, nicht etwas, das verschwindet.

Jede Zeile zeigt, woher sie stammt, sodass Sie die Quelle jederzeit selbst einsehen können.

Das Durcheinander ist beseitigt. Sie sehen die nützlichen Teile, die Sie angefordert haben, und woher jeder stammt.

Statt eines Stapels von Websites zum Lesen erhalten Sie eine klare Liste mit einer Zeile für jeden Eintrag und einer Notiz, die zeigt, woher er stammt. Lesen Sie sie, drucken Sie sie oder behalten Sie sie. Sie verwandelt ein Gewirr offener Tabs in eine Aufzeichnung, die Sie später prüfen können.

Jede Karte zeigt genau die Art von Formulierung, die Sie verwenden würden, sodass Sie nie feststecken.

Es gibt keine Menüs oder Einstellungen, mit denen Sie sich herumschlagen müssen. Sie fragen einfach.

Beschreiben Sie, was Sie möchten, in Ihren eigenen alltäglichen Worten, wie im Gespräch mit einem Menschen.

Sie benötigen keine besonderen Wörter. Fragen Sie nach Nachrichten zu einem Thema, Preisen von einigen Geschäften, einer offiziellen Bekanntmachung oder den Zeiten einer Veranstaltung. Wählen Sie ein Beispiel, um zu sehen, wie Sie fragen könnten und welche Art von geordneter Antwort zurückkommen kann.

Eine übersichtliche Liste kommt zurück, so wie eine ordentliche Quittung auflistet, was Sie gekauft haben.

Es besucht die Seiten und liest sie für Sie, höflich.

Sagen Sie ihm, wonach Sie suchen, in alltäglichen Worten.

Das Web ist riesig und vieles davon ist Rauschen. Winnow liest die relevanten Seiten, behält die nützlichen Teile und lässt das Durcheinander hinter sich. Sie fragen in einfachen Worten und erhalten eine geordnete Antwort mit ihren Quellen. Es gibt nichts Neues zu lernen.

Weniger wiederkehrende Rechnungen zu verwalten

Selbst gehostete Quellarbeit, die Ihnen gehört