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.

Skupine algoritmov glede na vrsto podatkov

Iskanje, spletna mesta, API-ji, viri, datoteke

Tipizirani rezultati za naslednji sistem

CLI, Rust crate, storitev in WebAssembly

Upravljanje znanja nad viri, zbranimi z Winnow.

Indeksirajte zbrane podatke za hitro iskanje.

Razčlenite izhod Winnow v drevesa, naslovljena z vsebino.

Začnite z enim ponavljajočim vprašanjem. Winnow ga spremeni v imenovano pot z jasnimi viri, skupnimi pravili pridobivanja, tipiziranim izhodom in zapisom izvajanja, ki ga lahko pregleda naslednji sistem.

V 66 kategorijah. Poleg tega 28 motorjev, 325 zbiralnikov.

Jedro nima odvisnosti ob izvajanju. Prikriti brskalnik je neobvezen, Python.

Projektni list beleži, kaj je vključeno: kompakten binarni Rust, katalog strugarjev in zbiralnikov, formate izhoda, nadzor zahtev, jezikovne povezave in štiri integracijske površine, ki jih uporablja preostali del sklada.

TLS, piškotki, omejitve hitrosti, posredniki

Razčlenjevalnik, strugarji, pridobivanje, revizija

Zaženi Winnow kot en sam binarni paket, ga vdelaj kot Rust crate, zaženi kot axum HTTP storitev ali zgradi za brskalnik in rob. Isti strgalniki in ista oblika izhoda delujejo v vseh štirih načinih.

Vnaprej pripravljeno pokritje strgalnikov

Vnaprej pripravljeni strgalniki za vire, ki jih analitiki že uporabljajo, od vladnih in znanstvenih portalov do novic, financ in odprtih podatkov. Vsak strgalnik je tipizirana Rust struktura. Lastni strgalniki se vključijo poleg vgrajenih in sledijo isti pogodbi o izhodu.

Na zahtevo: vir, URL, časovni žig, status, zgoščena vrednost vsebine.

Zasebna omrežja so blokirana v vsakem URL vnosu.

Žetoni na domensko raven, usklajeni z dokumentirano politiko vsakega vira.

Zavrni privzeto. Nepredpomnjene domene so zavrnjene, dokler robots.txt ni pridobljen.

Winnow uveljavlja robots.txt s politiko zavrni-privzeto, omejitvami hitrosti na domensko raven, zaščito pred SSRF, psevdonimizacijo GDPR in revizijskim beleženjem na zahtevo kot oblikovne omejitve, ne kot neobvezne nastavitve. Kar je zunaj nadzora Winnowa: operaterjeva zakonita podlaga za zbiranje podatkov, odločitve o zmanjšanju podatkov in odločitve o hrambi v nadaljevanju. Ta stran ne trdi, da ima certifikat GDPR, ker knjižnica ne more sprejeti te odločitve v vašem imenu.

besedilo, JSON, JSONL, CSV ali HTML. Primerno za cevovode.

Izbori CSS izvlečejo tipizirana polja iz DOM-a.

Najprej navaden HTTP, nato prikriti HTTP, brskalnik pa le, če je blokiran.

28 iskalnikov se poizveduje vzporedno, rezultati se združijo in razvrstijo.

Ena poizvedba postane strukturirani zapisi skozi štiri stopnje. Odkrivanje vzporedno poizveduje 28 iskalnikov. Pridobivanje se stopnjuje od navadnega HTTP do zahtev s prstnim odtisom TLS in do prikritega brskalnika, vendar le, ko spletno mesto aktivno blokira. Razčlenjevanje izvaja tipizirane strgalnike nad DOM. Izhod zapiše eno od petih oblik na standardni izhod.

Vsak iskalnik ima svoj API, kvote in ovoj.

Storitve rotacije dodajo ločeno obračunavanje in variabilnost kakovosti IP-jev.

Selenium ali Playwright doda ločeno površino za upravljanje in stroške virov.

Krhka koda, specifična za posamezno spletno mesto, ki tiho odpove, ko se spremeni oznaka.

Večina skladov za zbiranje podatkov združuje strgalnike, brskalnike brez glave, storitve posrednikov, iskalne ovoje in lastne skripte za vzdrževanje. Plast lepila postane projekt. Vsako orodje ima svojo površino za upravljanje, svoj model obračunavanja in svoje predpostavke o vljudnosti.

Zakonita podlaga, minimizacija in hramba ostanejo pri vas. Winnow zabeleži to odločitev; ne sprejme je namesto vas.

Vsaka zahteva je zabeležena z virom, naslovom, časom in rezultatom.

Identifikatorje je mogoče psevdonimizirati med zbiranjem podatkov, ne pa prenašati surove.

Pravilnik o robotih in omejitve stopnje po domeni se uveljavljajo od prve zahteve.

Zbiranje spletnih podatkov prinaša resnična tveganja: blokiranje, ravnanje z osebnimi podatki, zahteve do nevarnih naslovov in pomanjkanje zapisa o tem, kaj se je zgodilo. Winnow obravnava vsako od teh od začetka, s pravili vljudnosti, psevdonimizacijo, zaščito pred nevarnimi cilji in dnevnikom vsake zahteve. Česar ne počne, je pretvarjanje, da sprejema vaše pravne odločitve. Vaša zakonita podlaga, koliko hranite in kako dolgo hranite, ostane vaša odločitev, in ne dajemo nobene izjave o potrdilu, ki je knjižnica ne more pošteno dati.

Zlaganje sklada v eno binarno datoteko pomeni eno stvar za učenje, izvajanje in popravljanje, namesto petih plus njihovih spojev.

Krhki strgalniki, specifični za posamezno spletno mesto, in lepilne skripte, ki držijo sklad skupaj, tiho požirajo čas inženirjev mesec za mesecem.

Rotacija posrednikov in iskalne kvote se zaračunavajo glede na uporabo. Samogostujoča binarna datoteka na infrastrukturi, ki jo že plačujete, nima presenetljivega računa za promet.

Zbirni sklad se običajno razdrobi na posebne strgalnike za posamezna spletišča, avtomatizacijo brskalnikov, upravljanje posredniških strežnikov, iskalne povezave in lepilno kodo. Winnow usklajuje te premične dele pod eno politiko izvajanja, tako da lahko operacije popravijo eno pot, opazujejo en zapis in ponovijo eno vprašanje.

Vhodi, časovni načrt, odločitve in rezultati ostanejo na voljo za ponavljanje in pregled.

Pravila za razčlenjevanje, psevdonimizacijo, normalizacijo in izhod so izrecna.

Omejitve hitrosti, politika robotov, ponovni poskusi in zaščita pred nevarnimi naslovi potujejo s potjo.

Vsak iskalnik, spletišče, API, vir in datoteka so imenovani v zagonu.

Ponavljajoče se zbirno opravilo ne bi smelo delovati kot pet nepovezanih skriptov. Winnow daje odkrivanju, pridobivanju, razčlenjevanju, normalizaciji, izhodu in zapisu zagona eno skupno pot, medtem ko ostane uvajanje ločena operativna odločitev.

Oddajajte JSON, CSV, tokove, shranjene zapise ali obliko odziva, ki jo pričakuje vaš potek dela.

Odkrivanje, pridobivanje, razčlenjevanje in izhod si delijo eno politiko in en zapis zagona.

Iskalniki, spletišča, API-ji, viri in datoteke lahko vstopijo v isti zagon.

Winnow začne z vprašanjem, odloči, katere površine virov spadajo v zagon, odkrije kandidate, jih vljudno pridobi, razčleni uporabno gradivo in oddaja tipizirane rezultate. Pot je zabeležena, tako da je mogoče isto delo ponoviti in pregledati.

Zapiše, kaj je obiskal, tako da je odgovor že tam, če kdo vpraša.

Lahko deluje v celoti v Evropi, na strojih, ki jim zaupate.

Spoštuje pravila, ki jih postavi vsako spletišče, in počaka na svojo vrsto.

Vsak rezultat ohrani svoje opombe o viru in pot zbiranja, tako da lahko storitev pokaže, od kod prihajajo informacije.

Prva vprašanja so smiselna: ali bi to lahko povzročilo težave, kam gredo moji podatki in kako lahko vidim, kaj je naredilo? Tukaj so preprosti odgovori. Skrbnost in odprtost sta v Winnow vgrajeni od začetka, ne prodajata se kot dodatki.

Seznam je majhna datoteka, ki jo lahko shranite in se k njej vrnete, ne pa nekaj, kar izgine.

Vsaka vrstica pove, od kod prihaja, tako da lahko vir vedno preverite sami.

Nered je odstranjen. Vidite uporabne dele, ki ste jih zahtevali, in od kod vsak prihaja.

Namesto kopice spletnih strani za branje dobite en jasen seznam z vrstico za vsako postavko in opombo, od kod prihaja. Preberite ga, natisnite ali shranite. Zaplet odprtih zavihkov se spremeni v zapis, ki ga lahko pozneje preverite.

Vsaka kartica prikazuje točno takšno vrsto vprašanja, kot bi ga vi zastavili, tako da nikoli ne obstanete.

Ni menijev ali nastavitev, s katerimi bi se ukvarjali. Samo vprašate.

Opisite, kaj želite, s svojimi vsakdanjimi besedami, kot da bi se pogovarjali s človekom.

Ne potrebujete posebnih besed. Vprašajte za novice o temi, cene iz nekaj trgovin, uradno obvestilo ali ure dogodka. Izberite primer, da vidite, kako lahko vprašate in kakšen urejen odgovor lahko dobite.

Vrne se urejen seznam, tako kot urejen račun navaja, kaj ste kupili.

Obišče strani in jih prebere namesto vas, vljudno.

Povejte mu, kaj iščete, z vsakdanjimi besedami.

Splet je ogromen in veliko je šuma. Winnow prebere ustrezne strani, ohrani uporabne dele in pusti nered za seboj. Vprašate z navadnimi besedami in dobite urejen odgovor z viri. Ničesar se ni treba naučiti.

Manj ponavljajočih se računov za upravljanje

Lastno gostovano izvorno delo, ki ga imate

Winnow daje ponavljajočemu se delu z viri eno urejeno pot. Iskalniki, spletna mesta, API-ji, viri in datoteke vstopijo v isti zagon; odkrivanje, pridobivanje, razčlenjevanje in tipizirani izhod si delijo eno politiko in en zapis. Operativa dobi ponovljiv postopek namesto petih zbiralnikov, ki se razidejo.

Ko Fabric potrebuje sveže informacije, Winnow zbere ustrezne dele iz virov, izbranih za storitev, in vrne urejen rezultat s priloženimi viri. Ne konfigurirate strgalnikov niti ne pišete kode; Winnow deluje v ozadju in vodi zapis o tem, kako so bile informacije zbrane.

robots.txt, omejitve hitrosti, SSRF zaščita po zasnovi

1.325 spletnih strgalnikov, 28 iskalnikov, 325 zbiralnikov

Scrapy, Selenium, posredniki, lastne skripte

Winnow sestavi vprašanje, cilj ali pogoj spremljanja v ponovljivo zbirno pot. Odkrivanje zajema iskalnike in katalog strgalnikov; pridobivanje se stopnjuje od HTTP do avtomatizacije brskalnika; razčlenjevanje normalizira rezultat v tipizirano besedilo, JSON, JSONL, CSV ali HTML. Vsaka zahteva gre skozi skupne nadzore hitrosti, robots, SSRF in revizije.