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.

Căutare, site-uri, API-uri, feed-uri, fișiere

O singură politică și o singură înregistrare de rulare

Rezultate tipizate pentru următorul sistem

Reguli de sursă aplicate pe întregul traseu

CLI, crate Rust, serviciu și WebAssembly

Guvernanța cunoștințelor peste sursele colectate de Winnow.

Indexează datele colectate pentru regăsire rapidă.

Analizează ieșirea Winnow în arbori cu adresare pe conținut.

Începe cu o singură întrebare recurentă. Winnow o transformă într-un traseu denumit cu surse explicite, reguli comune de preluare, ieșire tipizată și o înregistrare de rulare pe care următorul sistem o poate inspecta.

În 66 de categorii. Plus 28 de motoare, 325 de colectoare.

Core nu are dependențe de runtime. Browserul stealth este opțional, Python.

Fișa proiectului înregistrează ce include: un binar Rust compact, catalogul de razuitori și colectoare, formatele de ieșire, controalele de cerere, legăturile de limbaj și cele patru suprafețe de integrare folosite de restul stivei.

TLS, cookie-uri, limite de rată, proxy-uri

Rulează Winnow ca binar unic, încorporează-l ca crate Rust, rulează-l ca serviciu HTTP axum sau compilează-l pentru browser și edge. Aceleași răzuitoare și aceeași formă de ieșire funcționează în toate cele patru moduri.

Răzuitoare preconfigurate pentru sursele pe care analiștii le folosesc deja, de la portaluri guvernamentale și științifice la știri, finanțe și date deschise. Fiecare răzuitor este o structură Rust tipată. Răzuitoarele personalizate se adaugă lângă cele încorporate și respectă același contract de ieșire.

Per cerere: sursă, URL, marcaj temporal, stare, hash de conținut.

Intervalele de rețea private sunt blocate în fiecare intrare URL.

Găleți de tokenuri pe domeniu, potrivite cu politica documentată a fiecărei surse.

Refuz implicit. Domeniile fără cache sunt refuzate până când robots.txt este preluat.

Winnow aplică robots.txt cu o politică de refuz implicit, limite de rată pe domeniu, protecție SSRF, pseudonimizare GDPR și jurnalizare de audit per cerere ca constrângeri de proiectare, nu ca setări opționale. Ce depășește controlul Winnow: temeiul legal al operatorului pentru colectarea datelor, alegerile de minimizare a datelor și deciziile de retenție ulterioare. Această pagină nu pretinde certificare GDPR, deoarece o bibliotecă nu poate face această determinare în numele tău.

text, JSON, JSONL, CSV sau HTML. Prietenos cu pipe-urile.

Selectoarele CSS extrag câmpuri tipate din DOM.

Mai întâi HTTP simplu, apoi HTTP stealth, apoi un browser doar dacă este blocat.

28 de motoare de căutare interogate în paralel, rezultatele sunt îmbinate și clasate.

O singură interogare devine înregistrări structurate prin patru etape. Descoperirea interoghează 28 de motoare în paralel. Preluarea escaladează de la HTTP simplu la cereri cu amprentă TLS și la un browser stealth, doar când un site blochează activ. Parsarea rulează răzuitoare tipizate peste DOM. Ieșirea scrie unul dintre cele cinci formate către stdout.

Fiecare motor de căutare are propriul API, propriile cote și propriul wrapper.

Serviciile de rotație adaugă facturare separată și variație a calității IP-ului.

Selenium sau Playwright adaugă o suprafață de operare separată și un cost de resurse.

Cod fragil per site, care se strică silențios când markup-ul se schimbă.

Cele mai multe stive de colectare a datelor combină răzuitoare, browsere headless, servicii de proxy, wrapper-e de căutare și scripturi de întreținere personalizate. Stratul de glue devine proiectul. Fiecare instrument are propria suprafață de operare, propriul model de facturare și propriile presupuneri despre politețe.

nu ar trebui să necesite cinci instrumente

Temeiul legal, minimizarea și păstrarea rămân la tine. Winnow înregistrează acea decizie; nu o ia pentru tine.

Fiecare cerere este înregistrată cu sursă, adresă, timp și rezultat.

Identificatorii pot fi pseudonimizați pe măsură ce datele sunt colectate, nu transportați brute.

Politica pentru roboți și limitele de rată per domeniu sunt aplicate de la prima cerere.

Colectarea datelor web implică riscuri reale: blocarea, gestionarea datelor personale, cererile care ajung la adrese nesigure și lipsa unei evidențe a ceea ce s-a întâmplat. Winnow se ocupă de fiecare dintre acestea de la început, cu reguli de politețe, pseudonimizare, protecție împotriva destinațiilor nesigure și un jurnal per cerere. Ceea ce nu face este să pretindă că ia deciziile tale legale. Temeiul tău legal, cât de mult păstrezi și cât timp îl păstrezi rămân decizia ta, și nu facem nicio afirmație de certificare pe care o bibliotecă nu o poate face sincer.

Strângerea stivei într-un singur binar înseamnă un singur lucru de învățat, rulat și corectat, în loc de cinci plus îmbinările lor.

Răzuitoarele fragile per site și scripturile de glue care țin stiva împreună consumă tăcut timpul inginerilor lună de lună.

Rotația proxy-urilor și cotele de căutare sunt facturate în funcție de utilizare. Un binar auto-găzduit pe infrastructura pe care o plătești deja nu are o factură de trafic surpriză.

Un stack de colectare se fragmentează de obicei în scrapere specifice site-urilor, automatizare de browser, gestionare proxy, conectori de căutare și cod de lipire. Winnow coordonează aceste piese mobile sub o singură politică de rulare, astfel încât operațiunile pot corecta o rută, observa o înregistrare și repeta o întrebare.

Intrările, sincronizarea, deciziile și rezultatele rămân disponibile pentru repetare și revizuire.

Regulile de parsare, pseudonimizare, normalizare și ieșire sunt explicite.

Limitele de rată, politica robots, reîncercările și protecția împotriva adreselor nesigure călătoresc cu ruta.

Fiecare motor de căutare, site, API, feed și fișier este numit în rulare.

O sarcină recurentă de colectare nu ar trebui să se comporte ca cinci scripturi fără legătură. Winnow oferă descoperirii, preluării, parsării, normalizării, ieșirii și înregistrării rulării o rută comună, în timp ce implementarea rămâne o alegere operațională separată.

Emite JSON, CSV, stream-uri, înregistrări stocate sau forma de răspuns pe care fluxul tău de lucru o așteaptă.

Descoperirea, preluarea, parsarea și ieșirea împărtășesc o politică și o înregistrare a rulării.

Motoarele de căutare, site-urile, API-urile, feed-urile și fișierele pot intra în aceeași rulare.

Winnow începe cu o întrebare, decide ce suprafețe de surse aparțin rulării, descoperă candidații, îi preia politicos, parsează materialul util și emite rezultate tipate. Ruta este înregistrată astfel încât aceeași muncă poate fi repetată și revizuită.

Scrie ce a vizitat, astfel încât răspunsul este deja acolo dacă cineva întreabă.

Poate rula integral în Europa, pe mașini în care ai încredere.

Respectă regulile pe care fiecare site le stabilește și își așteaptă rândul.

Fiecare rezultat își păstrează notele de sursă și ruta de colectare, astfel încât serviciul poate arăta de unde provine informația.

Primele întrebări sunt unele sensibile: ar putea cauza probleme, unde merg informațiile mele și cum pot vedea ce a făcut? Iată răspunsurile simple. Grija și deschiderea sunt construite în Winnow de la început, nu vândute ca extra.

Lista este un fișier mic pe care îl poți salva și la care te poți întoarce, nu ceva care dispare.

Fiecare linie spune de unde provine, astfel încât să poți verifica întotdeauna sursa.

Haosul este eliminat. Vezi părțile utile pe care le-ai cerut și de unde provine fiecare.

În loc de o grămadă de site-uri de citit, primești o listă clară cu o linie pentru fiecare element și o notă care arată de unde provine. Citește-o, printează-o sau păstrează-o. Transformă un amestec de file deschise într-o evidență pe care o poți verifica mai târziu.

Fiecare card arată exact genul de lucru pe care l-ai spune, astfel încât să nu rămâi blocat.

Nu există meniuri sau setări cu care să te lupți. Doar întrebi.

Descrie ce vrei în cuvintele tale de zi cu zi, ca și cum ai vorbi cu o persoană.

Nu ai nevoie de cuvinte speciale. Întreabă despre știri pe un subiect, prețuri de la câteva magazine, un anunț oficial sau orele unui eveniment. Alege un exemplu pentru a vedea cum ai putea întreba și ce fel de răspuns organizat poți primi.

O listă ordonată revine, așa cum o chitanță ordonată listează ce ai cumpărat.

Vizitează paginile și le citește pentru tine, politicos.

Spune-i ce cauți, în cuvinte de zi cu zi.

Web-ul este imens și mare parte din el este zgomot. Winnow citește paginile relevante, păstrează părțile utile și lasă haosul în urmă. Întrebi în cuvinte simple și primești un răspuns organizat cu sursele sale. Nu este nimic nou de învățat.

Mai puține facturi recurente de gestionat

Cinci instrumente separate și lipiciul lor

Muncă sursă auto-găzduită pe care o deții

Winnow oferă muncii recurente din surse un singur traseu guvernat. Motoarele de căutare, site-urile web, API-urile, feed-urile și fișierele intră în aceeași rulare; descoperirea, preluarea, parsarea și ieșirea tipizată împărtășesc o singură politică și o singură înregistrare. Operațiunile câștigă un proces repetabil în loc de cinci colectoare care se îndepărtează unul de celălalt.