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.

Haku, sivustot, API:t, syötteet, tiedostot

Tyypitetyt tulokset seuraavalle järjestelmälle

Tiedonhallinta Winnow'n keräämille lähteille.

Indeksoi kerätty data nopeaa hakua varten.

Jäsennä Winnow'n tuloste sisältöosoitettuihin puihin.

Aloita yhdestä toistuvasta kysymyksestä. Winnow muuttaa sen nimettyksi reitiksi, jolla on selkeät lähteet, jaetut hakusäännöt, tyypitetty tuloste ja suoritusloki, jota seuraava järjestelmä voi tarkastella.

66 luokassa. Lisäksi 28 moottoria, 325 keräintä.

Ytimellä ei ole ajonaikaisia riippuvuuksia. Stealth-selain on valinnainen, Python.

Projektitiedote kertoo, mitä mukana toimitetaan: kompakti Rust-binääri, kaapija- ja keräinluettelo, tulostusformaatit, pyyntöjen hallinta, kielisidokset ja neljä integraatiopintaa, joita muu pino käyttää.

TLS, evästeet, nopeusrajoitukset, välityspalvelimet

Aja Winnow yksittäisenä binaarina, upota se Rust-crateina, aja sitä axum HTTP -palveluna tai rakenna selaimelle ja reunalle. Samat kaapijat ja sama tulostusmuoto toimivat kaikissa neljässä tilassa.

Valmiiksi rakennetut kaapijat lähteille, joita analyytikot jo käyttävät, hallinnon ja tieteen portaaleista uutisiin, rahoitukseen ja avoimeen dataan. Jokainen kaapija on tyypitetty Rust-struct. Mukautetut kaapijat asettuvat sisäänrakennettujen rinnalle ja noudattavat samaa tulostussopimusta.

Pyyntökohtaisesti: lähde, URL, aikaleima, tila, sisällön tiiviste.

Yksityiset verkkoalueet estetään jokaisessa URL-syötteessä.

Verkkotunnuskohtaiset token-ämpärit, jotka vastaavat kunkin lähteen dokumentoitua käytäntöä.

Kieltävä oletus. Välimuistittomat verkkotunnukset evätään, kunnes robots.txt on haettu.

Winnow noudattaa robots.txt-tiedostoa kieltävällä oletuskäytännöllä, verkkotunnuskohtaisilla nopeusrajoituksilla, SSRF-suojauksella, GDPR-pseudonymisoinnilla ja pyyntökohtaisella auditointilokituksella suunnittelurajoitteina, ei valinnaisina asetuksina. Mikä jää Winnow'n hallinnan ulkopuolelle: operaattorin laillinen peruste tiedonkeruulle, tietojen minimointivalinnat ja myöhemmät säilytyspäätökset. Tämä sivu ei väitä GDPR-sertifiointia, koska kirjasto ei voi tehdä tätä määritystä puolestasi.

teksti, JSON, JSONL, CSV tai HTML. Putkistoystävällinen.

CSS-valitsimet poimivat tyypitetyt kentät DOM:sta.

Tavallinen HTTP ensin, sitten stealth-HTTP, sitten selain vain jos estetty.

28 hakukonetta kysytään rinnakkain, tulokset yhdistetään ja järjestetään.

Yksi kysely muuttuu jäsennellyiksi tietueiksi neljän vaiheen kautta. Haku kysyy 28 hakukonetta rinnakkain. Nouto etenee tavallisesta HTTP:stä TLS-sormenjäljellä varustettuihin pyyntöihin ja edelleen stealth-selaimeen, mutta vain jos sivusto aktiivisesti estää. Jäsennys suorittaa tyypitetyt kaapijat DOM:lle. Tuloste kirjoittaa yhden viidestä muodosta stdoutiin.

Jokaisella hakukoneella on oma rajapintansa, kiintiönsä ja kirjastonsa.

Kiertopalvelut tuovat oman laskutuksensa ja IP-laadun vaihtelun.

Selenium tai Playwright tuo oman ylläpitopinnan ja resurssikustannuksen.

Sivustokohtainen hauras koodi, joka hajoaa hiljaa, kun markup muuttuu.

Useimmat datankeruupinot yhdistävät kaapijoita, päättömiä selaimia, välityspalveluita, hakukoneiden kirjastoja ja mukautettuja ylläpitoskriptejä. Liimakerroksesta tulee projekti. Jokaisella työkalulla on oma ylläpitopintansa, oma laskutusmallinsa ja omat oletuksensa kohteliaisuudesta.

Lainmukainen peruste, minimointi ja säilytys pysyvät sinulla. Winnow tallentaa päätöksen; se ei tee sitä puolestasi.

Jokainen pyyntö kirjataan lähteineen, osoitteineen, aikaleimoineen ja tuloksineen.

Tunnisteet voidaan pseudonymisoida datan keruun yhteydessä, ei kuljettaa raakana.

Robots-käytäntöä ja toimialuekohtaisia pyyntörajoja noudatetaan ensimmäisestä pyynnöstä alkaen.

Verkkodatan keräämiseen liittyy todellisia riskejä: estetyksi tuleminen, henkilötietojen käsittely, pyynnöt, jotka päätyvät turvattomiin osoitteisiin, ja se, ettei tapahtumista jää mitään kirjaa. Winnow hoitaa nämä kaikki alusta alkaen kohteliaisuussäännöillä, pseudonymisoinnilla, suojalla turvattomia kohteita vastaan ja pyyntökohtaisella lokilla. Mitä se ei tee, on teeskennellä tekevänsä sinun lailliset päätöksesi. Lainmukainen perusteesi, kuinka paljon säilytät ja kuinka kauan, ovat sinun päätöksesi, emmekä väitä mitään sellaista sertifiointia, jota kirjasto ei voi rehellisesti antaa.

Pinon taittaminen yhdeksi binääriksi tarkoittaa yhtä asiaa opittavaksi, ajettavaksi ja korjattavaksi viiden sijaan ja niiden saumojen lisäksi.

Hauraat sivustokohtaiset kaapijat ja liimaskriptit, jotka pitävät pinon kasassa, kuluttavat insinöörien aikaa hiljaa kuukausi toisensa jälkeen.

Välityspalvelinten kierto ja hakukiintiöt laskutetaan käytön mukaan. Itse isännöity binääri infrastruktuurissa, josta jo maksat, ei tuo yllätysliikennelaskua.

Keräyspino yleensä pirstoutuu sivustokohtaisiin kaavintoihin, selaimen automaatioon, välityspalvelinten käsittelyyn, hakuyhdistimiin ja liimakoodiin. Winnow koordinoi nämä liikkuvat osat yhden suorituskäytännön alle, joten operaatiot voivat korjata yhden reitin, tarkkailla yhtä tietuetta ja toistaa yhden kysymyksen.

Syötteet, ajoitus, päätökset ja tulokset pysyvät saatavilla toistoa ja tarkastelua varten.

Jäsennys, pseudonymisointi, normalisointi ja tulostussäännöt ovat eksplisiittisiä.

Pyyntörajat, robots-käytäntö, uudelleenyritykset ja vaarallisten osoitteiden suojaus kulkevat reitin mukana.

Jokainen hakukone, sivusto, API, syöte ja tiedosto nimetään suorituksessa.

Toistuvan keräystyön ei pitäisi käyttäytyä kuin viisi toisiinsa liittymätöntä skriptiä. Winnow antaa löytämiselle, noutamiselle, jäsentämiselle, normalisoinnille, tulostukselle ja suoritustietueelle yhden yhteisen reitin, kun taas käyttöönotto pysyy erillisenä operatiivisena valintana.

Lähetä JSON, CSV, streamit, tallennetut tietueet tai vastausmuoto, jonka työnkulkusi odottaa.

Löytäminen, noutaminen, jäsentäminen ja tulostus jakavat yhden käytännön ja yhden suoritustietueen.

Hakukoneet, verkkosivustot, API:t, syötteet ja tiedostot voivat tulla samaan suoritukseen.

Winnow alkaa kysymyksestä, päättää, mitkä lähdepinnat kuuluvat suoritukseen, löytää ehdokkaat, noutaa ne kohteliaasti, jäsentää hyödyllisen materiaalin ja lähettää typitetyt tulokset. Reitti tallennetaan, jotta sama työ voidaan toistaa ja tarkastella.

Se kirjoittaa ylös, mitä se vieraili, joten vastaus on jo siellä, jos joku kysyy.

Se voi toimia kokonaan Euroopassa, koneilla, joihin luotat.

Se noudattaa sääntöjä, jotka jokainen verkkosivusto asettaa, ja odottaa vuoroaan.

Jokainen tulos säilyttää lähdemuistiinpanonsa ja keräysreittinsä, joten palvelu voi näyttää, mistä tieto on peräisin.

Ensimmäiset kysymykset ovat järkeviä: voiko tämä aiheuttaa ongelmia, minne tietoni menevät ja miten voin nähdä, mitä se teki? Tässä ovat selkeät vastaukset. Huolenpito ja avoimuus on rakennettu Winnowiin alusta alkaen, ei myyty lisäominaisuuksina.

Lista on pieni tiedosto, jonka voit tallentaa ja palata siihen myöhemmin, ei jotain, joka katoaa.

Jokainen rivi kertoo, mistä se on peräisin, joten voit aina tarkistaa lähteen itse.

Sotku on siivottu pois. Näet hyödylliset osat, joita pyysit, ja mistä kukin on peräisin.

Sen sijaan, että lukisit pinon verkkosivuja, saat yhden selkeän listan, jossa on rivi jokaiselle kohteelle ja merkintä siitä, mistä se on peräisin. Lue se, tulosta se tai säilytä se. Se muuttaa avoimien välilehtien sekasotkun muistiinpanoksi, jota voit tarkistaa myöhemmin.

Jokainen kortti näyttää tarkalleen sellaisen asian, jonka sanoisit, joten et koskaan jää jumiin.

Ei ole valikkoja tai asetuksia, joiden kanssa pitäisi painiskella. Sinä vain kysyt.

Kuvaile, mitä haluat, omin arkipäiväisin sanoin, kuin puhuisit ihmiselle.

Sinun ei tarvitse käyttää erityisiä sanoja. Kysy uutisia aiheesta, hintoja muutamista kaupoista, virallista ilmoitusta tai tapahtuman ajankohtia. Valitse esimerkki nähdäksesi, miten voisit kysyä ja millainen järjestetty vastaus voi palata.

Siisti lista palautuu, samalla tavalla kuin siisti kuitti listaa ostoksesi.

Se käy sivuilla ja lukee ne puolestasi, kohteliaasti.

Kerro sille, mitä etsit, arkipäiväisin sanoin.

Verkko on valtava ja paljon siitä on kohinaa. Winnow lukee olennaiset sivut, säilyttää hyödylliset osat ja jättää sotkun taakse. Kysyt selkeillä sanoilla ja saat järjestetyn vastauksen lähteineen. Ei ole mitään uutta opittavaa.

Lähdesäännöt ja turvallisuus sisäänrakennettu

Vähemmän toistuvia laskuja hallittavaksi

Viisi erillistä työkalua ja niiden liima

Itse ylläpidetty lähdekoodityö, jonka omistat

Winnow antaa toistuvalle lähdetyölle yhden hallitun reitin. Hakukoneet, verkkosivustot, API:t, syötteet ja tiedostot menevät samaan ajoon; löytäminen, hakeminen, jäsentäminen ja tyypitetty tuloste jakavat yhden käytännön ja yhden lokin. Toiminnot saavat toistettavan prosessin viiden erilleen ajautuvan kerääjän sijaan.

Noudattaa jokaista verkkosivuston sääntöä

Kun Fabric tarvitsee ajankohtaista tietoa, Winnow kerää olennaiset osat palvelulle valituista lähteistä ja palauttaa siistin tuloksen lähteineen. Et määritä kaapimia etkä kirjoita koodia; Winnow toimii taustalla ja pitää lokia siitä, miten tiedot kerättiin.

robots.txt, nopeusrajat, SSRF-suojaus suunniteltuna