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.
Algoritmide rühmitamine andmetüübi järgi
Tüpiseeritud tulemused järgmisele süsteemile
Allikareeglid, mida rakendatakse kogu teekonnal
Teie serverid, EL-i piirkond või isoleeritud
Teadmiste haldus Winnow'ga kogutud allikate üle.
Indekseeri kogutud andmed kiireks otsinguks.
Parsing Winnow'i väljund sisupõhisteks puudeks.
Alusta ühe korduva küsimusega. Winnow muudab selle nimega teeks, millel on selged allikad, ühised toomisreeglid, tüpiseeritud väljund ja käituskirje, mida järgmine süsteem saab vaadata.
66 kategoorias. Lisaks 28 mootorit, 325 kollektorit.
Core'il puuduvad käitusaja sõltuvused. Varjatud brauser on valikuline, Python.
Projektileht fikseerib, mida tarnitakse: kompaktne Rust binaar, kraapijate ja kollektorite kataloog, väljundvormingud, päringujuhtimine, keeleühendused ja neli integratsioonipinda, mida ülejäänud virn kasutab.
TLS, küpsised, piirangud, puhverserverid
Käivita Winnow ühe binaarina, manusta see Rusti kratidena, käivita axum HTTP-teenusena või ehita brauseri ja serva jaoks. Samad kraapijad ja sama väljundvorming töötavad kõigis neljas režiimis.
Eel ehitatud kraapijad allikatele, mida analüütikud juba kasutavad, alates valitsuse ja teaduse portaalist kuni uudiste, rahanduse ja avatud andmeteni. Iga kraapija on tüübitud Rusti struktuur. Kohandatud kraapijad lisatakse sisseehitatud kõrvale ja järgivad sama väljundlepingu.
Päringu kohta: allikas, URL, ajatempel, olek, sisu räsi.
Privaatvõrgu vahemikud on blokeeritud igas URL-i sisendis.
Domeenipõhised token-ämbrid, mis on vastavuses iga allika dokumenteeritud poliitikaga.
Keela vaikimisi. Vahemällu salvestamata domeenid keeldutakse, kuni robots.txt on hangitud.
Winnow jõustab robots.txt-i keela-vaikimisi-poliitikaga, domeenipõhiste piiramismääradega, SSRF-kaitsega, GDPR-i pseudonümiseerimisega ja päringupõhise auditilogimisega kui disainipiirangutega, mitte valikuliste seadetega. Mis jääb Winnowi kontrolli alt välja: operaatori õiguslik alus andmete kogumiseks, andmete minimeerimise valikud ja allavoolu säilitamisotsused. See leht ei väida GDPR-i sertifitseerimist, sest teek ei saa seda otsust teie eest teha.
tekst, JSON, JSONL, CSV või HTML. Torusõbralik.
CSS-valijad eraldavad tüübitud väljad DOM-ist.
Kõigepealt tavaline HTTP, seejärel varjatud HTTP, seejärel brauser ainult siis, kui blokeeritakse.
28 otsingumootorit päritakse paralleelselt, tulemused liidetakse ja järjestatakse.
Ühest päringust saavad struktureeritud kirjed nelja etapi kaudu. Avastus pärib paralleelselt 28 otsingumootorit. Hankimine tõuseb tavalisest HTTP-st TLS-sõrmejäljega päringuteni ja varjatud brauserini, kuid ainult siis, kui sait aktiivselt blokeerib. Parssimine käivitab DOM-i üle tüpiseeritud kaabitsad. Väljund kirjutab ühe viiest vormingust stdout-i.
Igal otsingumootoril on oma API, kvoodid ja ümbris.
Rotatsiooniteenused lisavad eraldi arvelduse ja IP-kvaliteedi kõikumise.
Selenium või Playwright lisab eraldi halduspinna ja ressursikulu.
Saidi-põhine habras kood, mis vaikselt katki läheb, kui märgistus muutub.
Enamik andmekogumisvirnu ühendab kaabitsad, peidetud brauserid, puhverserveriteenused, otsinguümbrised ja kohandatud hooldusskriptid. Liimikiht muutub projektiks. Igal tööriistal on oma halduspind, oma arveldusmudel ja oma viisakuseeldused.
Õiguslik alus, minimeerimine ja säilitamine jäävad teile. Winnow salvestab selle otsuse; ta ei tee seda teie eest.
Iga päring logitakse allika, aadressi, aja ja tulemusega.
Identifikaatoreid saab pseudonümiseerida andmete kogumise ajal, mitte kanda edasi töötlemata kujul.
Robotid-poliitikat ja domeenipõhiseid päringupiiranguid rakendatakse alates esimesest päringust.
Veebiandmete kogumine toob kaasa tõelisi riske: blokeerimine, isikuandmete töötlemine, päringud ohtlikele aadressidele ja puuduv ülevaade juhtunust. Winnow tegeleb nende kõigiga algusest peale, kasutades viisakusreegleid, pseudonümiseerimist, kaitset ohtlike sihtkohtade eest ja päringupõhist logi. Mida ta ei tee, on teeselda, et teeb teie õiguslikke otsuseid. Teie õiguslik alus, kui palju sälitate ja kui kaua, jääb teie otsustada, ja me ei esita sertifitseerimisväidet, mida raamatukogu ausalt teha ei saa.
Virnu voltimine ühte binaari tähendab ühte asja õppida, käitada ja parandada, mitte viit pluss nende õmblusi.
Habras saidipõhine kaabits ja liimiskriptid, mis hoiavad virna koos, neelavad kuust kuusse vaikselt inseneride aega.
Puhverserveri rotatsioon ja otsingukvoodid arveldatakse kasutuse järgi. Isehostitud binaar infrastruktuuril, mille eest juba maksate, ei too üllatuslikku liiklusarve.
Kogumisvirn killuneb tavaliselt saidipõhisteks kraapijateks, brauseriautomaatikaks, proksihalduseks, otsinguliidesteks ja liimkoodiks. Winnow koordineerib need liikuvad osad ühe käituspoliitika all, nii et operatsioonid saavad parandada ühte marsruuti, jälgida ühte kirjet ja korrata ühte küsimust.
Sisendid, ajastus, otsused ja tulemused jäävad kättesaadavaks kordamiseks ja ülevaatamiseks.
Parsimise, pseudonüümimise, normaliseerimise ja väljundreeglid on selgesõnalised.
Piiramismäärad, robotipoliitika, uuesti proovimine ja ohtlike aadresside kaitse liiguvad marsruudiga kaasa.
Iga otsingumootor, sait, API, voog ja fail on käituses nimetatud.
Korduv kogumistöö ei tohiks käituda nagu viis mitteseotud skripti. Winnow annab avastamisele, toomisele, parsimisele, normaliseerimisele, väljundile ja käituskirjele ühe ühise marsruudi, samas kui juurutamine jääb eraldi operatiivseks valikuks.
Väljasta JSON, CSV, voogudena, salvestatud kirjetena või kujul, mida sinu töövoog ootab.
Avastamine, toomine, parsimine ja väljund jagavad ühte poliitikat ja ühte käituskirjet.
Otsingumootorid, veebisaidid, API-d, voogud ja failid saavad siseneda samasse käitusse.
Winnow alustab küsimusest, otsustab, millised allikapinnad kuuluvad käitusse, avastab kandidaadid, toob need viisakalt, parsimiseb kasuliku materjali ja väljastab tüübitud tulemused. Marsruut salvestatakse, et sama tööd saaks korrata ja üle vaadata.
See kirjutab üles, mida külastas, nii et vastus on juba olemas, kui keegi küsib.
See saab töötada täielikult Euroopas, masinates, mida sa usaldad.
See järgib reegleid, mille iga veebisait seab, ja ootab oma korda.
Iga tulemus hoiab oma allikamärkmeid ja kogumismarsruuti, nii et teenus saab näidata, kust info pärineb.
Esimesed küsimused on mõistlikud: kas see võib probleeme tekitada, kuhu mu info läheb ja kuidas ma näen, mida see tegi? Siin on lihtsad vastused. Hoolivus ja avatus on Winnow'sse sisse ehitatud algusest peale, mitte müüdud lisaväärtusena.
Loend on väike fail, mille saad salvestada ja mille juurde hiljem tagasi tulla, mitte midagi, mis kaob.
Iga rida näitab, kust see pärineb, nii et saad alati ise allikasse vaadata.
Segadus on kõrvaldatud. Näed kasulikke osi, mida palusid, ja seda, kust igaüks neist pärineb.
Selle asemel, et lugeda hunnikut veebilehti, saad ühe selge loendi, kus igaüks on ühel real ja juures on märge, kust see pärineb. Loe see läbi, prindi või hoia alles. See muudab avatud vahelehtede segaduse kirjeks, mida saad hiljem kontrollida.
Iga kaart näitab täpselt sellist asja, mida võiksid öelda, nii et sa ei jää kunagi hätta.
Pole menüüsid ega seadeid, millega maadleda. Sa lihtsalt küsid.
Kirjelda, mida tahad, oma igapäevaste sõnadega, nagu räägiksid inimesega.
Erisõnu pole vaja. Küsi uudiseid teema kohta, hindu mõnest poest, ametlikku teadet või sündmuse kellaaegu. Vali näide, et näha, kuidas võiksid küsida ja milline korrastatud vastus võib tagasi tulla.
Tagasi tuleb korralik loend, nagu korralik kviitung loetleb selle, mida ostsid.
See külastab lehti ja loeb need sinu eest läbi, viisakalt.
Ütle talle, mida otsid, igapäevastes sõnades.
Veeb on tohutu ja suur osa sellest on müra. Winnow loeb asjakohased lehed, jätab kasulikud osad alles ja jätab segaduse kõrvale. Sa küsid lihtsate sõnadega ja saad korrastatud vastuse koos allikatega. Midagi uut pole vaja õppida.
Allikareeglid ja turvalisus sisse ehitatud
Winnow annab korduvale lähtetööle ühe juhitud tee. Otsimootorid, veebisaidid, API-d, vooged ja failid sisenevad samasse käiku; avastamine, allalaadimine, parsimine ja tüpiseeritud väljund jagavad ühte poliitikat ja ühte kirjet. Operatsioon saab korratava protsessi viie lahkneva koguja asemel.
Kui Fabric vajab värsket teavet, kogub Winnow asjakohased osad teenuse jaoks valitud allikatest ja tagastab korraliku tulemuse koos allikatega. Sa ei konfigureeri kraapijaid ega kirjuta koodi; Winnow töötab taustal ja peab arvestust, kuidas teave koguti.
robots.txt, päringupiirangud, SSRF-kaitse disaini poolest
1 325 saidikraapijat, 28 otsimootorit, 325 kogujat
Scrapy, Selenium, puhverserverid, kohandatud skriptid
Winnow koostab küsimuse, sihtmärgi või jälgimistingimuse korratavaks kogumisrajaks. Avastamine hõlmab otsimootoreid ja kraapijate kataloogi; allalaadimine tõuseb HTTP-st brauseri automatiseerimiseni; parsimine normaliseerib tulemuse tüpiseeritud tekstiks, JSON-iks, JSONL-iks, CSV-ks või HTML-iks. Iga päring läbib ühised päringupiirangu, robots, SSRF ja auditi kontrollid.
Vaikimisi keelatud, kontrollitakse enne iga päringut.
Sisemised ja privaatsed aadressid on blokeeritud.