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.
Wyszukiwanie, witryny, API, kanały, pliki
Jedna polityka i jeden rekord uruchomienia
Reguły źródeł egzekwowane na całej trasie
Zarządzanie wiedzą nad źródłami zebranymi przez Winnow.
Indeksuj zebrane dane w celu szybkiego wyszukiwania.
Parsuj wyniki Winnow do drzew adresowanych treścią.
Zacznij od jednego cyklicznego pytania. Winnow zamienia je w nazwaną trasę z jawnymi źródłami, wspólnymi regułami pobierania, typowanym wynikiem i rekordem uruchomienia, który kolejny system może sprawdzić.
W 66 kategoriach. Plus 28 silników, 325 kolektorów.
Core nie ma zależności runtime. Stealth browser jest opcjonalny, Python.
Karta projektu rejestruje, co zawiera: kompaktowy binarny plik w Rust, katalog skrobaków i kolektorów, formaty wyników, kontrolę żądań, powiązania językowe oraz cztery powierzchnie integracji używane przez resztę stosu.
TLS, ciasteczka, limity szybkości, proxy
winnow skrobanie, wyszukiwanie, indeksowanie
Uruchom Winnow jako pojedynczą binarię, osadź go jako crate Rust, uruchom jako usługę HTTP axum lub zbuduj dla przeglądarki i brzegu. Te same skrobaki i ten sam kształt wyników działają we wszystkich czterech trybach.
Gotowe skrobaki dla źródeł, których analitycy już używają, od portali rządowych i naukowych po wiadomości, finanse i otwarte dane. Każdy skrobak to typowany struct Rust. Własne skrobaki wpinają się obok wbudowanych i przestrzegają tego samego kontraktu wyników.
Na żądanie: źródło, URL, znacznik czasu, status, hash treści.
Prywatne zakresy sieci są blokowane w każdym wejściu URL.
Kubełki tokenów na domenę dopasowane do udokumentowanej polityki każdego źródła.
Odmowa domyślnie. Niezbuforowane domeny są odrzucane, dopóki robots.txt nie zostanie pobrane.
Winnow egzekwuje robots.txt z polityką odmowy domyślnie, limitami szybkości na domenę, ochroną SSRF, pseudonimizacją GDPR i dziennikiem audytu na żądanie jako ograniczeniami projektowymi, a nie opcjonalnymi ustawieniami. To, co wykracza poza kontrolę Winnow: podstawa prawna operatora do zbierania danych, wybory minimalizacji danych i decyzje dotyczące przechowywania w dalszym ciągu. Ta strona nie twierdzi, że posiada certyfikat GDPR, ponieważ biblioteka nie może dokonać tego ustalenia w Twoim imieniu.
tekst, JSON, JSONL, CSV lub HTML. Przyjazny dla potoków.
Selektory CSS wyodrębniają typowane pola z DOM.
Najpierw zwykły HTTP, potem ukryty HTTP, a przeglądarka tylko wtedy, gdy zablokowano.
28 silników wyszukiwania zapytanych równolegle, wyniki scalone i uszeregowane.
Jedno zapytanie staje się ustrukturyzowanymi rekordami przez cztery etapy. Odkrywanie przeszukuje równolegle 28 wyszukiwarek. Pobieranie eskaluje od zwykłego HTTP przez żądania z odciskiem TLS do ukrytej przeglądarki, tylko gdy witryna aktywnie blokuje. Parsowanie uruchamia typowane skrobaki na DOM. Wyjście zapisuje jeden z pięciu formatów na standardowe wyjście.
Każda wyszukiwarka ma własne API, limity i nakładkę.
Usługi rotacji dodają osobne rozliczenia i zmienność jakości adresów IP.
Selenium lub Playwright dodaje osobną powierzchnię operacyjną i koszt zasobów.
Kruchy kod dla każdej witryny, który cicho psuje się, gdy zmienia się znacznik.
Większość stosów do zbierania danych łączy skrobaki, przeglądarki bez głowy, usługi proxy, nakładki na wyszukiwarki i niestandardowe skrypty konserwacyjne. Warstwa kleju staje się projektem. Każde narzędzie ma własną powierzchnię operacyjną, własny model rozliczeń i własne założenia dotyczące uprzejmości.
Podstawa prawna, minimalizacja i przechowywanie pozostają po Twojej stronie. Winnow rejestruje tę decyzję; nie podejmuje jej za Ciebie.
Każde żądanie jest rejestrowane ze źródłem, adresem, czasem i wynikiem.
Identyfikatory mogą być pseudonimizowane podczas zbierania danych, a nie przenoszone w surowej formie.
Zasady dotyczące robotów i limity szybkości dla domen są egzekwowane od pierwszego żądania.
Zbieranie danych z sieci niesie realne ryzyka: zablokowanie, przetwarzanie danych osobowych, żądania docierające do niebezpiecznych adresów oraz brak zapisu tego, co się stało. Winnow radzi sobie z każdym z nich od początku, dzięki zasadom uprzejmości, pseudonimizacji, ochronie przed niebezpiecznymi celami i dziennikowi każdego żądania. Czego nie robi, to udawanie, że podejmuje Twoje decyzje prawne. Twoja podstawa prawna, ile przechowujesz i jak długo przechowujesz, pozostają Twoją decyzją, a my nie składamy żadnych oświadczeń o certyfikacji, których biblioteka nie może uczciwie złożyć.
Jedna polityka i jeden zapis uruchomienia
Złożenie stosu w jeden plik binarny oznacza jedną rzecz do nauczenia się, uruchomienia i łatania, zamiast pięciu plus ich połączeń.
Kruche skrobaki dla poszczególnych witryn i skrypty klejące, które trzymają stos w całości, cicho pochłaniają czas inżynierów miesiąc po miesiącu.
Rotacja proxy i limity wyszukiwania są rozliczane za użycie. Samodzielnie hostowany plik binarny na infrastrukturze, za którą już płacisz, nie ma niespodziewanego rachunku za ruch.
Stos do zbierania danych zwykle rozpada się na skrapery specyficzne dla witryn, automatyzację przeglądarek, obsługę pełnomocników, łączniki wyszukiwania i kod spajający. Winnow koordynuje te ruchome części w ramach jednej polityki uruchamiania, dzięki czemu operacje mogą poprawić jedną trasę, obserwować jeden rekord i powtórzyć jedno pytanie.
Dane wejściowe, czas, decyzje i wyniki pozostają dostępne do powtórzenia i przeglądu.
Reguły parsowania, pseudonimizacji, normalizacji i wyjścia są jawne.
Limity szybkości, polityka robotów, ponowienia i ochrona przed niebezpiecznymi adresami podróżują z trasą.
Każda wyszukiwarka, witryna, API, kanał i plik jest nazwany w przebiegu.
Powtarzające się zadanie zbierania danych nie powinno zachowywać się jak pięć niezwiązanych skryptów. Winnow daje wykrywaniu, pobieraniu, parsowaniu, normalizacji, wyjściu i rekordowi przebiegu jedną wspólną trasę, podczas gdy wdrożenie pozostaje osobnym wyborem operacyjnym.
Emituj JSON, CSV, strumienie, zapisane rekordy lub kształt odpowiedzi, którego oczekuje Twój przepływ pracy.
Wykrywanie, pobieranie, parsowanie i wyjście dzielą jedną politykę i jeden rekord przebiegu.
Wyszukiwarki, witryny, API, kanały i pliki mogą wejść do tego samego przebiegu.
Winnow zaczyna od pytania, decyduje, które powierzchnie źródeł należą do przebiegu, wykrywa kandydatów, pobiera je grzecznie, parsuje użyteczny materiał i emituje typowane wyniki. Trasa jest rejestrowana, aby tę samą pracę można było powtórzyć i przejrzeć.
Zapisuje, co odwiedziło, więc odpowiedź już tam jest, jeśli ktoś zapyta.
Może działać w całości w Europie, na maszynach, którym ufasz.
Przestrzega zasad, które wyznacza każda witryna, i czeka na swoją kolej.
Każdy wynik zachowuje notatki źródłowe i trasę zbierania, dzięki czemu usługa może pokazać, skąd pochodzą informacje.
Pierwsze pytania są rozsądne: czy to może sprawić kłopoty, dokąd trafiają moje informacje i jak mogę zobaczyć, co to zrobiło? Oto proste odpowiedzi. Troska i otwartość są wbudowane w Winnow od początku, a nie sprzedawane jako dodatki.
Lista to mały plik, który możesz zapisać i wrócić do niego, a nie coś, co znika.
Każda linia mówi, skąd pochodzi, więc zawsze możesz sam zajrzeć do źródła.
Bałagan jest usunięty. Widzisz przydatne części, o które prosiłeś, i skąd każda pochodzi.
Zamiast stosu stron do przeczytania dostajesz jedną przejrzystą listę z linią dla każdej pozycji i notatką, skąd pochodzi. Przeczytaj ją, wydrukuj lub zachowaj. Zamienia plątaninę otwartych kart w zapis, który możesz sprawdzić później.
Każda karta pokazuje dokładnie to, co mógłbyś powiedzieć, więc nigdy nie utkniesz.
Nie ma menu ani ustawień do okiełznania. Po prostu pytasz.
Opisz, czego chcesz, własnymi codziennymi słowami, jak rozmowa z człowiekiem.
Nie potrzebujesz specjalnych słów. Zapytaj o wiadomości na dany temat, ceny z kilku sklepów, oficjalne ogłoszenie lub godziny wydarzenia. Wybierz przykład, aby zobaczyć, jak możesz zapytać i jaki rodzaj uporządkowanej odpowiedzi może wrócić.
Wraca schludna lista, jak porządny paragon z zakupów.
Odwiedza strony i czyta je za Ciebie, uprzejmie.
Powiedz mu, czego szukasz, codziennymi słowami.
Sieć jest ogromna i wiele w niej szumu. Winnow czyta istotne strony, zachowuje przydatne części i zostawia bałagan. Pytasz zwykłymi słowami i dostajesz uporządkowaną odpowiedź ze źródłami. Nie ma nic nowego do nauki.
Zasady źródeł i bezpieczeństwo wbudowane
Mniej powtarzających się rachunków do zarządzania
Samodzielnie hostowane źródło, które posiadasz
Winnow nadaje powtarzalnej pracy ze źródłami jedną zarządzaną ścieżkę. Wyszukiwarki, strony internetowe, API, kanały i pliki trafiają do tego samego przebiegu; odkrywanie, pobieranie, parsowanie i typowane wyjście dzielą jedną politykę i jeden zapis. Operacje zyskują powtarzalny proces zamiast pięciu kolektorów, które się rozjeżdżają.
Gdy Fabric potrzebuje aktualnych informacji, Winnow zbiera istotne fragmenty ze źródeł wybranych dla usługi i zwraca uporządkowany wynik z dołączonymi źródłami. Nie konfigurujesz skrobaków ani nie piszesz kodu; Winnow działa w tle i prowadzi zapis tego, jak informacje zostały zebrane.
robots.txt, limity szybkości, ochrona SSRF z założenia