Jak uruchomić szybki parser stron internetowych dla LLM na 14 megabajtach pamięci RAM
Ostatnio próbowałem wdrożyć lokalny stos do scrapowania stron internetowych w potoku RAG i mój skromny VPS szybko błagał o litość. Połączenie silników przeglądarek, kolejek zadań i ciężkich środowisk uruchomieniowych natychmiast pochłaniało gigabajty pamięci. Jeśli również próbowaliście samodzielnie hostować popularne rozwiązania takie jak Firecrawl, prawdopodobnie pamiętacie te wymagania systemowe.
Niedawno projekt fastCRW zwrócił moją uwagę (w repozytorium nazywa się po prostu crw). Autor przepisał znajome funkcje scrapowania i crawlowania w Rust, mieszcząc wszystko w kompaktowym pliku binarnym.
Co potrafi ten projekt
fastCRW powstał jako bezpośrednia alternatywa dla Firecrawl i Tavily. Pobiera strony internetowe na podstawie URL i dostarcza je jako czysty Markdown, gotowy do przetwarzania przez modele językowe, lub jako ustrukturyzowany JSON.
Narzędzie obsługuje cztery główne zadania:
- Scrape: konwertuje stronę na Markdown, surowy HTML lub zrzut ekranu.
- Crawl: systematycznie przechodzi przez strony witryny za pomocą linków wewnętrznych, szanując plik robots.txt.
- Map: buduje mapę linków zasobu bez pełnego ładowania każdej strony.
- Search: przeszukuje internet i natychmiast eksportuje wyniki.
Według testów porównawczych w repozytorium, na otwartym zbiorze danych zawierającym tysiąc adresów, fastCRW wykazał dobrą szybkość ładowania i kompletność ekstrakcji danych, a przy bezczynności plik binarny zużywa zaledwie około 14 megabajtów pamięci RAM.
Jak z tym pracować
Możesz wypróbować narzędzie lokalnie bez rejestracji lub połączyć się z backendem chmurowym z darmowym poziomem.
Instalacja w terminalu:
curl -fsSL https://fastcrw.com/install | sh
Natychmiast po tym CLI jest dostępne. Proste wywołanie zwróci sparsowany Markdown bezpośrednio do strumienia wyjściowego:
crw https://example.com
Integracja z kodem
Dla programistów dostępne są gotowe biblioteki. Tak wygląda zbieranie danych w Pythonie:
from crw import CrwClient
client = CrwClient()
page = client.scrape("https://example.com", formats=["markdown"])
print(page["markdown"])
Dla Node.js składnia jest praktycznie taka sama:
import { CrwClient } from "crw-sdk";
const client = new CrwClient();
const page = await client.scrape("https://example.com", {
formats: ["markdown"],
});
console.log(page.markdown);
Łączenie z asystentami AI przez MCP
Dodatkową zaletą jest obsługa Model Context Protocol. Oznacza to, że narzędzie można szybko podłączyć jako narzędzie dla Claude Desktop, Cursor lub dowolnego innego agenta.
Polecenie automatycznej konfiguracji MCP:
npx -y crw-mcp@latest install
Po instalacji model zyskuje możliwość samodzielnego wyszukiwania w internecie i czytania stron bez obejść z zewnętrznymi skryptami.
Opcje wdrożenia i licencjonowanie
Projekt oferuje dwie ścieżki użytkowania. Pierwsza to uruchomienie lokalnego pliku binarnego na własnych serwerach pod Linuxem lub macOS. Druga to API chmurowe z gotowym ciężkim renderowaniem JavaScript i wyszukiwaniem.
Ważne jest, aby zapoznać się z licencjami, jeśli planujesz wdrożyć narzędzie w produkcji. Sam silnik i serwer MCP są rozpowszechniane na podstawie restrykcyjnej licencji AGPL-3.0. Biblioteki klienckie dla Pythona i TypeScript są otwarte na znanej licencji MIT.
Kto to znajdzie przydatne
fastCRW to doskonały wybór, jeśli budujesz systemy RAG, zbierasz dane do dostrajania modeli lub tworzysz autonomiczne agenty AI. Projekt eliminuje konieczność utrzymywania ciężkiej floty przeglądarek tylko po to, aby wyodrębnić zwykły tekst z artykułów i dokumentacji.
Jeśli masz dość przeznaczania połowy zasobów serwera na ciężkie parsery, spróbuj uruchomić crw lokalnie — różnica w zużyciu pamięci jest zauważalna od pierwszych sekund.
Powiązane projekty