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.

Viena politika un viens izpildes ieraksts

Avotu noteikumi, kas tiek ievēroti visā maršrutā

CLI, Rust crate, pakalpojums un WebAssembly

Zināšanu pārvaldība pār Winnow vāktajiem avotiem.

Parsē Winnow izvadi satura adresētos kokos.

Sāciet ar vienu atkārtotu jautājumu. Winnow to pārvērš nosauktā maršrutā ar skaidriem avotiem, kopīgiem ielādes noteikumiem, tipizētu izvadi un izpildes ierakstu, ko nākamā sistēma var pārbaudīt.

66 kategorijās. Plus 28 dzinēji, 325 vācēji.

Core nav izpildlaika atkarību. Stealth pārlūks ir neobligāts, Python.

Projekta lapa ieraksta, kas tiek piegādāts: kompakts Rust binārais fails, skrāpju un vācēju katalogs, izvades formāti, pieprasījumu kontroles, valodu saistījumi un četras integrācijas virsmas, ko izmanto pārējā kaudze.

TLS, sīkfaili, ātruma ierobežojumi, starpniekserveri

winnow skrāpēšana, meklēšana, pārlūkošana

Palaidiet Winnow kā vienu bināro failu, ieguliet to kā Rust kastes, palaidiet to kā axum HTTP pakalpojumu vai veidojiet pārlūkprogrammai un malai. Tie paši skrāpētāji un tā pati izvades forma darbojas visos četros režīmos.

Iepriekš izveidota skrāpētāju pārklājums

Iepriekš izveidoti skrāpētāji avotiem, kurus analītiķi jau izmanto, no valdības un zinātnes portāliem līdz jaunumiem, finansēm un atvērtajiem datiem. Katrs skrāpētājs ir tipizēta Rust struktūra. Pielāgotie skrāpētāji ievietojas blakus iebūvētajiem un ievēro to pašu izvades līgumu.

Katram pieprasījumam: avots, URL, laikspiedols, statuss, satura jaucējkods.

Privāto tīklu diapazoni ir bloķēti katrā URL ievadē.

Katram domēnam atbilstošas žetonu tvertnes, kas saskaņotas ar katra avota dokumentēto politiku.

Noraidīt pēc noklusējuma. Kešatmiņā neiekļauti domēni tiek atteikti, līdz tiek ielādēts robots.txt.

Winnow ievieš robots.txt ar noraidīt-pēc-noklusējuma politiku, domēna līmeņa ātruma ierobežojumiem, SSRF aizsardzību, GDPR pseidonimizāciju un pieprasījuma revīzijas reģistrēšanu kā dizaina ierobežojumus, nevis izvēles iestatījumus. Kas ir ārpus Winnow kontroles: operatora likumīgais pamats datu vākšanai, datu minimizēšanas izvēles un turpmākie saglabāšanas lēmumi. Šī lapa neapgalvo GDPR sertifikāciju, jo bibliotēka nevar veikt šo noteikšanu jūsu vietā.

teksts, JSON, JSONL, CSV vai HTML. Cauruļvadam draudzīgs.

CSS selektori iegūst tipizētus laukus no DOM.

Vispirms parastais HTTP, tad slēptais HTTP, tad pārlūkprogramma tikai tad, ja bloķēts.

28 meklēšanas dzinēji tiek vaicāti paralēli, rezultāti tiek apvienoti un sarindoti.

Viens vaicājums kļūst par strukturētiem ierakstiem četros posmos. Atklāšana vienlaikus aptaujā 28 meklētājprogrammas. Iegūšana pakāpeniski pāriet no vienkārša HTTP uz TLS-pirkstu nospiedumu pieprasījumiem un slēpto pārlūku, tikai tad, ja vietne aktīvi bloķē. Parsēšana palaiž tipizētus skrāpētājus pa DOM. Izvade raksta vienu no pieciem formātiem uz stdout.

Katrai meklētājprogrammai ir sava API, kvotas un iesaiņojums.

Rotācijas pakalpojumi pievieno atsevišķus norēķinus un IP kvalitātes atšķirības.

Selenium vai Playwright pievieno atsevišķu darbības virsmu un resursu izmaksas.

Vietnei specifisks trausls kods, kas klusi sabojājas, kad mainās iezīmējums.

Lielākā daļa datu vākšanas steku apvieno skrāpētājus, bezgalvas pārlūkus, starpniekserveru pakalpojumus, meklēšanas iesaiņojumus un pielāgotus uzturēšanas skriptus. Līmes slānis kļūst par projektu. Katram rīkam ir sava darbības virsma, savs norēķinu modelis un savi pieklājības pieņēmumi.

Juridiskais pamats, minimizēšana un saglabāšana paliek pie jums. Winnow ieraksta šo lēmumu; tas to nepieņem jūsu vietā.

Katrs pieprasījums tiek reģistrēts ar avotu, adresi, laiku un rezultātu.

Identifikatorus var pseidonimizēt, kamēr dati tiek vākti, nevis pārnēsāt neapstrādātus.

Robotu politika un domēna ātruma ierobežojumi tiek ievēroti no pirmā pieprasījuma.

Tīmekļa datu vākšana rada reālus riskus: tikt bloķētam, apstrādāt personas datus, pieprasījumiem sasniegt nedrošas adreses un bez ieraksta par notikušo. Winnow ar to visu tiek galā no paša sākuma, ar pieklājības noteikumiem, pseidonimizāciju, aizsardzību pret nedrošiem galamērķiem un katra pieprasījuma žurnālu. Tas, ko tas nedara, ir izlikšanās, ka pieņem jūsu juridiskos lēmumus. Jūsu juridiskais pamats, cik daudz jūs glabājat un cik ilgi, paliek jūsu ziņā, un mēs neizsakām sertifikācijas apgalvojumu, ko bibliotēka nevar godīgi izteikt.

Salokot steku vienā binārā failā, ir viena lieta, ko apgūt, palaist un labot, nevis piecas plus to šuves.

Trausli vietnei specifiski skrāpētāji un līmes skripti, kas notur steku kopā, klusi patērē inženieru laiku mēnesi pēc mēneša.

Starpniekserveru rotācija un meklēšanas kvotas tiek rēķinātas pēc lietojuma. Pašmitināts binārs fails infrastruktūrā, par kuru jau maksājat, nerada pārsteiguma trafika rēķinu.

Kolekciju steks parasti sadrumstalojas pa vietnei specifiskiem skrāpieriem, pārlūka automatizāciju, prokšu apstrādi, meklēšanas savienotājiem un līmējošo kodu. Winnow koordinē šīs kustīgās daļas vienā izpildes politikā, lai operācijas varētu labot vienu maršrutu, novērot vienu ierakstu un atkārtot vienu jautājumu.

Ievades, laika plānojums, lēmumi un rezultāti paliek pieejami atkārtošanai un pārskatīšanai.

Parsēšanas, pseidonimizācijas, normalizācijas un izvades noteikumi ir skaidri.

Ātruma ierobežojumi, robotu politika, atkārtoti mēģinājumi un nedrošu adrešu aizsardzība ceļo kopā ar maršrutu.

Katrs meklētājs, vietne, API, plūsma un fails ir nosaukts izpildes ciklā.

Atkārtots kolekcijas darbs nedrīkst izturēties kā pieci nesaistīti skripti. Winnow dod atklāšanai, iegūšanai, parsēšanai, normalizācijai, izvadei un izpildes ierakstam vienu kopīgu maršrutu, kamēr izvietošana paliek atsevišķa operacionāla izvēle.

Izvadiet JSON, CSV, plūsmas, saglabātus ierakstus vai atbildes formu, ko jūsu darbplūsma sagaida.

Atklāšana, iegūšana, parsēšana un izvade izmanto vienu politiku un vienu izpildes ierakstu.

Meklētāji, vietnes, API, plūsmas un faili var ienākt tajā pašā izpildes ciklā.

Winnow sākas ar jautājumu, izlemj, kuras avotu virsmas pieder izpildes ciklam, atklāj kandidātus, iegūst tos pieklājīgi, parsē noderīgo materiālu un izvada tipizētus rezultātus. Maršruts tiek ierakstīts, lai to pašu darbu varētu atkārtot un pārskatīt.

Tas pieraksta, ko apmeklēja, tāpēc atbilde jau ir tur, ja kāds jautā.

Tas var darboties pilnībā Eiropā, uz mašīnām, kurām uzticaties.

Tas ievēro noteikumus, ko katra vietne nosaka, un gaida savu kārtu.

Katrs rezultāts saglabā savas avota piezīmes un kolekcijas maršrutu, lai pakalpojums varētu parādīt, no kurienes informācija nāk.

Pirmie jautājumi ir saprātīgi: vai tas var radīt problēmas, kur nonāk mana informācija un kā es varu redzēt, ko tas darīja? Šeit ir vienkāršas atbildes. Rūpes un atklātība ir iebūvētas Winnow no paša sākuma, nevis pārdotas kā papildu iespējas.

Saraksts ir neliels fails, ko vari saglabāt un pie kura atgriezties, nevis kaut kas, kas pazūd.

Katra rindiņa norāda, no kurienes tā nāk, lai vienmēr pats varētu pārbaudīt avotu.

Juks ir novākts. Tu redzi noderīgās daļas, ko prasīji, un no kurienes katra nāk.

Tā vietā, lai lasītu veselu kaudzi vietņu, tu saņem vienu skaidru sarakstu ar rindiņu katram vienumam un norādi, no kurienes tas nāk. Izlasi to, izdrukā vai saglabā. Tas pārvērš atvērto cilņu jucekli ierakstā, ko vari pārbaudīt vēlāk.

Katra kartīte parāda tieši tādu jautājumu, kādu tu varētu uzdot, tāpēc nekad neesi iestrēdzis.

Nav izvēlņu vai iestatījumu, ar ko cīnīties. Tu vienkārši jautā.

Apraksti, ko vēlies, saviem ikdienas vārdiem, kā runājot ar cilvēku.

Tev nav vajadzīgi īpaši vārdi. Jautā par jaunumiem par kādu tēmu, cenām no dažiem veikaliem, oficiālu paziņojumu vai notikuma laikiem. Izvēlies piemēru, lai redzētu, kā varētu jautāt un kāda veida sakārtota atbilde var atgriezties.

Atgriežas kārtīgs saraksts, kā kārtīgs čeks uzskaita, ko esi nopircis.

Tas apmeklē lapas un izlasa tās tavā vietā, pieklājīgi.

Tīmeklis ir milzīgs, un liela daļa tajā ir troksnis. Winnow izlasa attiecīgās lapas, patur noderīgās daļas un atstāj jucekli malā. Tu jautā vienkāršiem vārdiem un saņem sakārtotu atbildi ar avotiem. Nav nekā jauna, ko mācīties.

Pašmitināts avota darbs, kas jums pieder

Winnow nodrošina atkārtotam avota darbam vienu pārvaldītu ceļu. Meklētājprogrammas, tīmekļa vietnes, API, plūsmas un faili nonāk vienā izpildē; atklāšana, iegūšana, parsēšana un tipizēta izvade izmanto vienu politiku un vienu ierakstu. Operācijas iegūst atkārtojamu procesu, nevis piecus kolektorus, kas attālinās viens no otra.

Kad Fabric nepieciešama aktuāla informācija, Winnow apkopo attiecīgās daļas no pakalpojumam izvēlētajiem avotiem un atgriež kārtīgu rezultātu ar pievienotajiem avotiem. Jums nav jākonfigurē skrāperi vai jāraksta kods; Winnow darbojas fonā un saglabā ierakstu par to, kā informācija tika apkopota.

robots.txt, ātruma ierobežojumi, SSRF aizsardzība pēc dizaina

1 325 vietņu skrāperi, 28 meklētājprogrammas, 325 kolektori

Scrapy, Selenium, starpniekserveri, pielāgoti skripti

Winnow apkopo jautājumu, mērķi vai novērošanas nosacījumu atkārtojamā kolekcijas maršrutā. Atklāšana aptver meklētājprogrammas un skrāperu katalogu; iegūšana pakāpeniski pāriet no HTTP uz pārlūkprogrammas automatizāciju; parsēšana normalizē rezultātu tipizētā tekstā, JSON, JSONL, CSV vai HTML. Katrs pieprasījums iziet cauri kopīgajiem ātruma, robots, SSRF un audita kontroles mehānismiem.