silkworm-rs — async‑first фреймворк для веб‑скрейпинга на Python с «двигателем» на Rust: HTTP‑клиент rnet (имперсонация браузера) + быстрый HTML‑парсер scraper-rs, минимальная модель Spider/Request/Response, middlewares и pipelines без тонны бойлерплейта. Он сразу даёт конкурентный движок с backpressure (очередь по умолчанию
concurrency * 10), таймаутами на запрос, дедупликацией по URL и структурированным логгированием со статистикой по RPS, памяти, количеству URL и ошибок.request.meta["proxy"].Request; HTMLResponse даёт удобные селекторы (select, select_first) и response.follow() для переходов.SkipNonHTMLMiddleware для отбрасывания не‑HTML.run_spider), uvloop на *nix, winloop на Windows и trio‑бэкенд (run_spider_trio) — для I/O‑bound задач это даёт 2–4x прирост.fetch_html_cdp, CDPClient и spider‑примеры). pip install silkworm-rs
# или (рекомендуется)
uv pip install --prerelease=allow silkworm-rs
Дальше — наследуете
Spider, реализуете async def parse(...), yield’ите словари или Request, а run_spider(...) берёт на себя конкурентный движок, middleware’ы и выгрузку данных в нужные пайплайны.#Python #Rust #WebScraping #AsyncIO #silkworm #rnet #scraperRS #DataEngineering #ETL #uvloop
https://github.com/BitingSnakes/silkworm
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - BitingSnakes/silkworm: Async web scraping framework on top of Rust. Works with Free-threaded Python (`PYTHON_GIL=0`).
Async web scraping framework on top of Rust. Works with Free-threaded Python (`PYTHON_GIL=0`). - BitingSnakes/silkworm