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.

Groupes d'algorithmes par type de données

Une politique et un enregistrement d'exécution

Règles de source appliquées sur tout le parcours

Gouvernance des connaissances sur les sources collectées par Winnow.

Indexez les données collectées pour une récupération rapide.

Analysez la sortie de Winnow en arbres à adressage par contenu.

Commencez par une question récurrente. Winnow la transforme en un parcours nommé avec des sources explicites, des règles de récupération partagées, une sortie typée et un enregistrement d'exécution que le système suivant peut inspecter.

La source n'est pas le centre. La question l'est.

Sur 66 catégories. Plus 28 moteurs, 325 collecteurs.

Core n'a aucune dépendance d'exécution. Le navigateur furtif est optionnel, en Python.

La fiche projet répertorie ce qui est livré : un binaire Rust compact, le catalogue de scrapers et de collecteurs, les formats de sortie, les contrôles de requête, les liaisons de langage et les quatre surfaces d'intégration utilisées par le reste de la pile.

Analyseur, scrapers, récupération, audit

Exécutez Winnow comme un binaire unique, intégrez-le comme crate Rust, lancez-le comme service HTTP axum, ou compilez-le pour le navigateur et l'edge. Les mêmes scrapers et le même format de sortie fonctionnent dans les quatre modes.

Des scrapers préconfigurés pour les sources que les analystes utilisent déjà, des portails gouvernementaux et scientifiques aux actualités, à la finance et aux données ouvertes. Chaque scraper est une structure Rust typée. Les scrapers personnalisés s'ajoutent aux intégrés et suivent le même contrat de sortie.

Par requête : source, URL, horodatage, statut, empreinte du contenu.

Les plages de réseaux privés sont bloquées dans chaque entrée d'URL.

Des buckets de jetons par domaine correspondent à la politique documentée de chaque source.

Refus par défaut. Les domaines non mis en cache sont refusés jusqu'à ce que robots.txt soit récupéré.

Winnow applique robots.txt avec une politique de refus par défaut, des limites de débit par domaine, une protection SSRF, une pseudonymisation RGPD et une journalisation d'audit par requête comme contraintes de conception, et non comme paramètres optionnels. Ce qui échappe au contrôle de Winnow : la base légale de l'opérateur pour la collecte de données, les choix de minimisation des données et les décisions de conservation en aval. Cette page ne prétend pas à la certification RGPD car une bibliothèque ne peut pas faire cette détermination à votre place.

texte, JSON, JSONL, CSV ou HTML. Compatible avec les pipes.

Les sélecteurs CSS extraient des champs typés du DOM.

HTTP simple d'abord, puis HTTP furtif, puis un navigateur uniquement si bloqué.

28 moteurs de recherche interrogés en parallèle, résultats fusionnés et classés.

Une requête devient des enregistrements structurés en quatre étapes. La découverte interroge 28 moteurs en parallèle. La récupération passe de HTTP simple à des requêtes avec empreinte TLS, puis à un navigateur furtif, uniquement lorsqu'un site bloque activement. L'analyse exécute des scrappers typés sur le DOM. La sortie écrit l'un des cinq formats vers stdout.

Chaque moteur de recherche a sa propre API, ses quotas et son wrapper.

Les services de rotation ajoutent une facturation séparée et une variation de qualité IP.

Selenium ou Playwright ajoute une surface d'exploitation séparée et un coût en ressources.

Code fragile par site qui casse silencieusement lorsque le balisage change.

La plupart des piles de collecte de données combinent des scrappers, des navigateurs sans tête, des services de proxy, des wrappers de recherche et des scripts de maintenance personnalisés. La couche de colle devient le projet. Chaque outil a sa propre surface d'exploitation, son propre modèle de facturation et ses propres hypothèses de politesse.

Le monde extérieur n'est pas une base de données

La base légale, la minimisation et la conservation restent avec vous. Winnow enregistre cette décision ; il ne la prend pas à votre place.

Chaque requête est journalisée avec la source, l'adresse, l'heure et le résultat.

Les identifiants peuvent être pseudonymisés lors de la collecte des données, sans être transmis en brut.

La politique robots et les limites de débit par domaine sont appliquées dès la première requête.

La collecte de données web comporte de vrais risques : être bloqué, gérer des données personnelles, des requêtes atteignant des adresses non sûres, et ne pas avoir de trace de ce qui s'est passé. Winnow gère chacun de ces points dès le départ, avec des règles de politesse, la pseudonymisation, la protection contre les destinations non sûres et un journal par requête. Ce qu'il ne fait pas, c'est prétendre prendre vos décisions juridiques. Votre base légale, la quantité de données que vous conservez et la durée de conservation restent votre choix, et nous ne faisons aucune déclaration de certification qu'une bibliothèque ne peut honnêtement pas faire.

Réduire la pile à un seul binaire signifie une seule chose à apprendre, à exécuter et à corriger, au lieu de cinq plus leurs coutures.

Les scrappers fragiles par site et les scripts de colle qui maintiennent la pile ensemble consomment silencieusement du temps d'ingénieur mois après mois.

La rotation des proxies et les quotas de recherche sont facturés à l'utilisation. Un binaire auto-hébergé sur une infrastructure que vous payez déjà n'a pas de facture de trafic surprise.

Une pile de collecte se fragmente généralement en scrapers spécifiques à chaque site, en automatisation de navigateur, en gestion de proxies, en connecteurs de recherche et en code de collage. Winnow coordonne ces pièces mobiles sous une seule politique d'exécution, afin que les opérations puissent corriger une route, observer un enregistrement et répéter une question.

Les entrées, le timing, les décisions et les résultats restent disponibles pour la répétition et la revue.

Les règles d'analyse, de pseudonymisation, de normalisation et de sortie sont explicites.

Les limites de débit, la politique robots, les nouvelles tentatives et la protection contre les adresses non sûres accompagnent la route.

Chaque moteur de recherche, site, API, flux et fichier est nommé dans l'exécution.

Un travail de collecte récurrent ne devrait pas se comporter comme cinq scripts sans rapport. Winnow donne à la découverte, à la récupération, à l'analyse, à la normalisation, à la sortie et à l'enregistrement d'exécution une route partagée, tandis que le déploiement reste un choix opérationnel distinct.

Émettez du JSON, du CSV, des flux, des enregistrements stockés ou la forme de réponse attendue par votre workflow.

La découverte, la récupération, l'analyse et la sortie partagent une politique et un enregistrement d'exécution.

Les moteurs de recherche, les sites web, les API, les flux et les fichiers peuvent entrer dans la même exécution.

Winnow commence par une question, décide quelles surfaces de sources appartiennent à l'exécution, découvre des candidats, les récupère poliment, analyse le matériel utile et émet des résultats typés. La route est enregistrée pour que le même travail puisse être répété et revu.

Il écrit ce qu'il a visité, donc la réponse est déjà là si quelqu'un demande.

Il peut fonctionner entièrement en Europe, sur des machines auxquelles vous faites confiance.

Il suit les règles que chaque site web définit et attend son tour.

Chaque résultat conserve ses notes de source et sa route de collecte, afin que le service puisse montrer d'où viennent les informations.

Les premières questions sont sensées : cela pourrait-il causer des problèmes, où vont mes informations, et comment puis-je voir ce qu'il a fait ? Voici les réponses simples. Le soin et l'ouverture sont intégrés à Winnow dès le départ, pas vendus comme des extras.

La liste est un petit fichier que vous pouvez enregistrer et consulter plus tard, pas quelque chose qui disparaît.

Chaque ligne indique d'où elle vient, afin que vous puissiez toujours vérifier la source vous-même.

Le fouillis est éliminé. Vous voyez les parties utiles que vous avez demandées et d'où chacune provient.

Au lieu d'une pile de sites à lire, vous obtenez une liste claire avec une ligne pour chaque élément et une note indiquant d'où il vient. Lisez-la, imprimez-la ou gardez-la. Cela transforme un enchevêtrement d'onglets ouverts en un enregistrement que vous pouvez consulter plus tard.

Chaque carte montre le type exact de chose que vous diriez, pour que vous ne soyez jamais bloqué.

Il n'y a pas de menus ni de réglages à maîtriser. Vous demandez simplement.

Décrivez ce que vous voulez avec vos propres mots de tous les jours, comme si vous parliez à une personne.

Vous n'avez pas besoin de mots spéciaux. Demandez des nouvelles sur un sujet, les prix de quelques magasins, un avis officiel ou les horaires d'un événement. Choisissez un exemple pour voir comment vous pourriez demander et quel type de réponse organisée peut revenir.

Une liste soignée revient, comme un reçu bien ordonné énumère ce que vous avez acheté.

Il visite les pages et les lit pour vous, poliment.