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.
Една политика и един запис за изпълнение
Типизирани резултати за следващата система
Правила за източници, прилагани по целия маршрут
Управление на знанията върху източници, събрани от Winnow.
Индексирайте събраните данни за бързо извличане.
Анализирайте изхода на Winnow в дървета с адресируемо съдържание.
Започнете с един повтарящ се въпрос. Winnow го превръща в именуван маршрут с изрични източници, споделени правила за извличане, типизиран изход и запис на изпълнението, който следващата система може да провери.
В 66 категории. Плюс 28 машини, 325 колектора.
Core няма зависимости по време на изпълнение. Стелт браузърът е опционален, на Python.
Проектният лист описва какво се доставя: компактен Rust двоичен файл, каталогът на скрейпърите и колекторите, изходните формати, контролите на заявките, езиковите обвързвания и четирите интеграционни повърхности, използвани от останалата част на стека.
TLS, бисквитки, ограничения на скоростта, проксита
Изпълнявайте Winnow като единичен двоичен файл, вграждайте го като Rust crate, изпълнявайте го като axum HTTP услуга или го изградете за браузъра и edge. Същите скрейпъри и същата форма на изхода работят във всичките четири режима.
Покритие с предварително изградени скрейпъри
Предварително изградени скрейпъри за източниците, които анализаторите вече използват, от правителствени и научни портали до новини, финанси и отворени данни. Всеки скрейпър е типизирана Rust структура. Персонализираните скрейпъри се добавят до вградените и следват същия договор за изход.
За всяка заявка: източник, URL, времеви печат, статус, хеш на съдържанието.
Частните мрежови диапазони са блокирани във всеки URL вход.
Токенови кофи за всеки домейн, съобразени с документираната политика на всеки източник.
Отказ по подразбиране. Некеширани домейни се отказват, докато robots.txt не бъде изтеглен.
Winnow прилага robots.txt с политика за отказ по подразбиране, ограничения на скоростта за всеки домейн, защита срещу SSRF, псевдонимизация по GDPR и одитно регистриране за всяка заявка като проектни ограничения, а не незадължителни настройки. Какво е извън контрола на Winnow: законното основание на оператора за събиране на данни, изборите за минимизиране на данните и решенията за съхранение надолу по веригата. Тази страница не претендира за GDPR сертификация, защото библиотека не може да направи това определение от ваше име.
текст, JSON, JSONL, CSV или HTML. Подходящ за тръбопроводи.
CSS селектори извличат типизирани полета от DOM.
Първо обикновен HTTP, след това скрит HTTP, а след това браузър само ако е блокиран.
28 търсачки се запитват паралелно, резултатите се обединяват и класират.
Една заявка се превръща в структурирани записи през четири етапа. Откриването запитва 28 търсачки паралелно. Извличането ескалира от обикновен HTTP към заявки с TLS пръстов отпечатък и към скрит браузър, само когато сайт активно блокира. Анализът изпълнява типизирани скрейпъри върху DOM. Изходът записва един от пет формата на stdout.
Всяка търсачка има собствен API, квоти и обвивка.
Услугите за ротация добавят отделно таксуване и променливост в качеството на IP адресите.
Selenium или Playwright добавя отделна операционна повърхност и ресурсен разход.
Чуплив код за всеки сайт, който мълчаливо се счупва при промяна на маркъпа.
Повечето стекове за събиране на данни комбинират скрейпъри, браузъри без глава, прокси услуги, обвивки за търсачки и персонализирани скриптове за поддръжка. Слоят на лепилото се превръща в проекта. Всеки инструмент има собствена операционна повърхност, собствен модел на таксуване и собствени предположения за учтивост.
Законното основание, минимизирането и съхранението остават при вас. Winnow записва това решение; не го взема вместо вас.
Всяка заявка се записва с източник, адрес, време и резултат.
Идентификаторите могат да бъдат псевдонимизирани при събирането на данните, а не пренасяни сурови.
Политиката за роботи и ограниченията на скоростта за домейн се прилагат от първата заявка.
Събирането на уеб данни носи реални рискове: блокиране, обработка на лични данни, заявки до небезопасни адреси и липса на запис за случилото се. Winnow се справя с всяко от тях от самото начало, с правила за учтивост, псевдонимизация, защита от опасни дестинации и дневник за всяка заявка. Това, което не прави, е да се преструва, че взема вашите правни решения. Вашето законно основание, колко пазите и колко дълго го пазите остават ваше решение, и ние не правим сертификационно твърдение, което библиотека не може честно да направи.
Една политика и един запис на изпълнението
Сгъването на стека в един двоичен файл означава едно нещо за научаване, изпълнение и коригиране, вместо пет плюс техните шевове.
Чупливите скрейпъри за конкретни сайтове и скриптовете за лепило, които държат стека заедно, тихо поглъщат инженерно време месец след месец.
Ротацията на проксита и квотите за търсачки се таксуват според употребата. Самостоятелно хостван двоичен файл върху инфраструктура, която вече плащате, няма изненадваща сметка за трафик.
Един сборен стек обикновено се разпада на специфични за сайта скрейпъри, автоматизация на браузъри, обработка на проксита, конектори за търсене и свързващ код. Winnow координира тези движещи се части под една политика за изпълнение, така че операциите могат да поправят един маршрут, да наблюдават един запис и да повторят един въпрос.
Входните данни, времето, решенията и резултатите остават достъпни за повторение и преглед.
Правилата за парсиране, псевдонимизация, нормализация и изход са изрични.
Ограниченията на скоростта, политиката за роботи, повторните опити и защитата от опасни адреси пътуват с маршрута.
Всяка търсачка, сайт, API, емисия и файл са посочени в изпълнението.
Повтаряща се задача за събиране не трябва да изглежда като пет несвързани скрипта. Winnow дава на откриването, извличането, парсирането, нормализацията, изхода и записа на изпълнението един общ маршрут, докато внедряването остава отделен оперативен избор.
Извеждайте JSON, CSV, потоци, съхранени записи или формата на отговора, който вашият работен процес очаква.
Откриването, извличането, парсирането и изходът споделят една политика и един запис на изпълнението.
Търсачки, уебсайтове, API, емисии и файлове могат да влязат в едно и също изпълнение.
Winnow започва с въпрос, решава кои повърхности на източници да включи в изпълнението, открива кандидати, извлича ги учтиво, парсира полезния материал и извежда типизирани резултати. Маршрутът се записва, така че същата работа може да бъде повторена и прегледана.
Той записва какво е посетил, така че отговорът вече е там, ако някой попита.
Може да работи изцяло в Европа, на машини, на които имате доверие.
Той следва правилата, които всеки уебсайт задава, и изчаква своя ред.
Всеки резултат запазва бележките си за източника и маршрута на събиране, така че услугата може да покаже откъде идва информацията.
Първите въпроси са разумни: може ли това да създаде проблеми, къде отива информацията ми и как мога да видя какво е направило? Ето честните отговори. Грижата и откритостта са вградени в Winnow от самото начало, а не се продават като екстри.
Списъкът е малък файл, който можете да запазите и да се върнете към него, а не нещо, което изчезва.
Всеки ред показва откъде идва, така че винаги можете сами да проверите източника.
Бъркотията е разчистена. Виждате полезните части, които сте поискали, и откъде идва всяка една.
Вместо куп уебсайтове за четене, получавате един ясен списък с по един ред за всеки елемент и бележка откъде идва. Прочетете го, разпечатайте го или го запазете. Превръща заплетените раздели в запис, който можете да проверите по-късно.
Всяка карта показва точно какво бихте казали, така че никога не оставате на сухо.
Няма менюта или настройки, с които да се борите. Просто питате.
Опишете какво искате с ежедневните си думи, като че говорите с човек.
Не ви трябват специални думи. Попитайте за новини по тема, цени от няколко магазина, официално известие или часове на събитие. Изберете пример, за да видите как можете да попитате и какъв организиран отговор може да се върне.
Връща се подреден списък, както чиста касова бележка изброява какво сте купили.
То посещава страниците и ги чете вместо вас, учтиво.
Кажете му какво търсите, с ежедневни думи.
Мрежата е огромна и голяма част от нея е шум. Winnow чете съответните страници, запазва полезните части и оставя бъркотията настрана. Питате с ясни думи и получавате организиран отговор с източниците му. Няма нищо ново за учене.
Правила за източници и безопасност, вградени
По-малко повтарящи се сметки за управление
Пет отделни инструмента и техният свързващ код
Самостоятелно хоствана изходна работа, която притежавате
Winnow дава на повтарящата се работа с източници един управляван път. Търсачки, уебсайтове, API, емисии и файлове влизат в едно и също изпълнение; откриването, извличането, парсирането и типизираният изход споделят една политика и един запис. Операциите получават повтаряем процес вместо пет колектора, които се разминават.
Всеки резултат запазва следата си до източника
Когато Fabric има нужда от актуална информация, Winnow събира съответните части от източниците, избрани за услугата, и връща подреден резултат с приложените източници. Вие не конфигурирате скрейпъри и не пишете код; Winnow работи отдолу и пази запис за това как е събрана информацията.