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.
Søgning, websteder, API'er, feeds, filer
Vidensstyring over Winnow-indsamlede kilder.
Indeksér indsamlede data for hurtig hentning.
Parse Winnow-output til indholdsadresserede træer.
Start med ét tilbagevendende spørgsmål. Winnow forvandler det til en navngivet rute med eksplicitte kilder, fælles hentningsregler, typet output og en kørselsregistrering, som det næste system kan inspicere.
På tværs af 66 kategorier. Plus 28 motorer, 325 indsamlere.
Core har ingen runtime-afhængigheder. Stealth-browser er valgfri, Python.
Projektarket registrerer, hvad der leveres: en kompakt Rust-binær, kataloget over skrabere og indsamlere, outputformater, anmodningskontroller, sprogbindinger og de fire integrationsflader, som resten af stakken bruger.
TLS, cookies, hastighedsgrænser, proxyer
Kør Winnow som en enkelt binær, integrér det som Rust-crates, kør det som en axum HTTP-tjeneste, eller byg til browseren og edge. De samme scrapers og den samme outputform virker i alle fire tilstande.
Forudbyggede scrapers til de kilder, analytikere allerede bruger, fra offentlige og videnskabelige portaler til nyheder, finans og åbne data. Hver scraper er en typet Rust-struct. Brugerdefinerede scrapers placeres ved siden af de indbyggede og følger samme outputkontrakt.
Per anmodning: kilde, URL, tidsstempel, status, indholdshash.
Private netværksområder blokeres i alle URL-inputs.
Token-spande pr. domæne tilpasset hver kildes dokumenterede politik.
Nægt som standard. Ucachede domæner afvises, indtil robots.txt er hentet.
Winnow håndhæver robots.txt med en nægt-som-standard-politik, rate limits pr. domæne, SSRF-beskyttelse, GDPR-pseudonymisering og revisionslogning pr. anmodning som designbegrænsninger, ikke valgfrie indstillinger. Hvad der falder uden for Winnows kontrol: operatørens lovlige grundlag for dataindsamling, valg om dataminimering og beslutninger om opbevaring downstream. Denne side hævder ikke GDPR-certificering, fordi et bibliotek ikke kan træffe den vurdering på dine vegne.
tekst, JSON, JSONL, CSV eller HTML. Pipe-venligt.
CSS-selectorer udtrækker typede felter fra DOM'en.
Almindelig HTTP først, derefter stealth HTTP, og kun en browser, hvis der blokeres.
28 søgemaskiner forespørges parallelt, resultater flettes og rangeres.
Én forespørgsel bliver til strukturerede poster gennem fire faser. Discovery forespørger 28 søgemaskiner parallelt. Fetch eskalerer fra almindelig HTTP til TLS-fingeraftryksanmodninger til en stealth-browser, kun når et websted aktivt blokerer. Parse kører typede skrabere over DOM'en. Output skriver ét af fem formater til stdout.
Hver søgemaskine har sin egen API, sine egne kvoter og sin egen wrapper.
Rotationsservices tilføjer separat fakturering og variation i IP-kvalitet.
Selenium eller Playwright tilføjer en separat driftsflade og ressourceomkostning.
Skrøbelig kode per websted, der bryder lydløst, når markup ændres.
De fleste dataindsamlingsstakke kombinerer skrabere, hovedløse browsere, proxytjenester, søgewrappers og tilpassede vedligeholdelsesscripts. Limlaget bliver projektet. Hvert værktøj har sin egen driftsflade, sin egen faktureringsmodel og sine egne antagelser om høflighed.
Retsgrundlag, minimering og opbevaring forbliver hos dig. Winnow registrerer den beslutning; den træffer den ikke for dig.
Hver anmodning logges med kilde, adresse, tidspunkt og resultat.
Identifikatorer kan pseudonymiseres, når data indsamles, ikke føres rå igennem.
Robots-politik og hastighedsbegrænsninger per domæne håndhæves fra den første anmodning.
Indsamling af webdata medfører reelle risici: at blive blokeret, håndtering af personoplysninger, anmodninger, der når usikre adresser, og ingen registrering af, hvad der skete. Winnow håndterer hver af disse fra starten med høflighedsregler, pseudonymisering, beskyttelse mod usikre destinationer og en log per anmodning. Det, den ikke gør, er at lade som om, den træffer dine juridiske beslutninger. Dit retsgrundlag, hvor meget du beholder, og hvor længe du beholder det, er din beslutning, og vi fremsætter ingen certificeringspåstand, et bibliotek ikke ærligt kan fremsætte.
At folde stakken ind i én binær betyder én ting at lære, køre og patche i stedet for fem plus deres samlinger.
Skrøbelige skrabere per websted og limscripts, der holder stakken sammen, fortærer stille og roligt ingeniørtimer måned efter måned.
Proxyrotation og søgekvoter faktureres efter brug. En selvhostet binær på infrastruktur, du allerede betaler for, har ingen overraskende trafikregning.
En indsamlingsstack er normalt fragmenteret på tværs af sitespecifikke scrapere, browserautomatisering, proxyhåndtering, søgekonnektorer og limkode. Winnow koordinerer disse bevægelige dele under én kørselsstrategi, så operationer kan patche én rute, observere én post og gentage ét spørgsmål.
Input, timing, beslutninger og resultater forbliver tilgængelige for gentagelse og gennemgang.
Parsing, pseudonymisering, normalisering og outputregler er eksplicitte.
Rate limits, robots-politik, gentagelser og beskyttelse mod usikre adresser følger med ruten.
Hver søgemaskine, side, API, feed og fil er navngivet i kørslen.
En tilbagevendende indsamlingsopgave bør ikke opføre sig som fem uafhængige scripts. Winnow giver discovery, fetching, parsing, normalisering, output og kørselsregistreringen én fælles rute, mens deployment forbliver et separat operationelt valg.
Emitér JSON, CSV, streams, lagrede poster eller den responsform, din arbejdsgang forventer.
Discover, fetch, parse og output deler én politik og én kørselsregistrering.
Søgemaskiner, websites, API'er, feeds og filer kan indgå i samme kørsel.
Winnow starter med et spørgsmål, beslutter hvilke kildeoverflader der skal indgå i kørslen, discoverer kandidater, fetcher dem høfligt, parser det nyttige materiale og emitterer typed resultater. Ruten registreres, så det samme arbejde kan gentages og gennemgås.
Den skriver ned, hvad den har besøgt, så svaret allerede er der, hvis nogen spørger.
Den kan køre helt inden for Europa, på maskiner, du stoler på.
Den følger de regler, hver hjemmeside sætter, og venter på sin tur.
Hvert resultat beholder sine kildeoplysninger og sin indsamlingsrute, så tjenesten kan vise, hvor oplysningerne kommer fra.
De første spørgsmål er fornuftige: Kan dette skabe problemer, hvor går mine oplysninger hen, og hvordan kan jeg se, hvad det har gjort? Her er de enkle svar. Omsorg og åbenhed er indbygget i Winnow fra starten, ikke solgt som ekstraudstyr.
Listen er en lille fil, du kan gemme og vende tilbage til, ikke noget der forsvinder.
Hver linje siger, hvor den kommer fra, så du altid selv kan se kilden.
Rodet er ryddet væk. Du ser de nyttige dele, du bad om, og hvor hver enkelt kommer fra.
I stedet for en bunke hjemmesider at læse, får du én klar liste med en linje for hvert punkt og en note, der viser, hvor det kommer fra. Læs den, print den, eller behold den. Det gør en rodebunke af åbne faner til en oversigt, du kan tjekke senere.
Hvert kort viser præcis den slags ting, du ville sige, så du aldrig sidder fast.
Der er ingen menuer eller indstillinger at kæmpe med. Du spørger bare.
Beskriv, hvad du vil have, med dine egne hverdagsord, som når du taler med et menneske.
Du behøver ikke særlige ord. Spørg efter nyheder om et emne, priser fra nogle butikker, en officiel meddelelse eller tidspunkterne for en begivenhed. Vælg et eksempel for at se, hvordan du kan spørge, og hvilken slags organiseret svar der kan komme tilbage.
En pæn liste kommer tilbage, på samme måde som en ryddelig kvittering viser, hvad du har købt.
Den besøger siderne og læser dem for dig, høfligt.
Fortæl den, hvad du leder efter, med hverdagsord.
Internettet er enormt, og meget af det er støj. Winnow læser de relevante sider, beholder de nyttige dele og lader rodet blive tilbage. Du spørger med almindelige ord og får et organiseret svar med kilder. Der er ikke noget nyt at lære.
Færre tilbagevendende regninger at administrere
Winnow giver gentagne kildeopgaver én styret rute. Søgemaskiner, websteder, API'er, feeds og filer indgår i samme kørsel; opdagelse, hentning, parsing og struktureret output deler én politik og én registrering. Driften får en gentagelig proces i stedet for fem indsamlere, der driver fra hinanden.
En assistent, der indsamler fakta for dig
Når Fabric har brug for aktuel information, indsamler Winnow de relevante dele fra de kilder, der er valgt til tjenesten, og returnerer et ryddeligt resultat med kilderne vedhæftet. Du konfigurerer ikke scrapere eller skriver kode; Winnow arbejder i baggrunden og fører en registrering af, hvordan informationen blev indsamlet.
robots.txt, hastighedsbegrænsninger, SSRF-beskyttelse ved design
1.325 webstedsscrapere, 28 søgemaskiner, 325 indsamlere
Scrapy, Selenium, proxyservere, brugerdefinerede scripts
Winnow kompilerer et spørgsmål, et mål eller en overvågningsbetingelse til en gentagelig indsamlingsrute. Opdagelse spænder over søgemaskiner og scraperkataloget; hentning eskalerer fra HTTP til browserautomatisering; parsing normaliserer resultatet til struktureret tekst, JSON, JSONL, CSV eller HTML. Hver anmodning passerer de fælles hastigheds-, robots-, SSRF- og revisionskontroller.