PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Silkworm-rs.

silkworm-rs — async‑first фреймворк для веб‑скрейпинга на Python с «двигателем» на Rust: HTTP‑клиент rnet (имперсонация браузера) + быстрый HTML‑парсер scraper-rs, минимальная модель Spider/Request/Response, middlewares и pipelines без тонны бойлерплейта. Он сразу даёт конкурентный движок с backpressure (очередь по умолчанию concurrency * 10), таймаутами на запрос, дедупликацией по URL и структурированным логгированием со статистикой по RPS, памяти, количеству URL и ошибок.

🔹Ключевые возможности:

🔘HTTP‑клиент с «маскарадом» под браузер, поддержкой редиректов с защитой от циклов, мерджем query‑параметров и прокси через request.meta["proxy"].

🔘Типизированные пауки и коллбэки, которые могут возвращать как items, так и новые Request; HTMLResponse даёт удобные селекторы (select, select_first) и response.follow() для переходов.

🔘Готовые middlewares: ротация User‑Agent, прокси, ретраи с экспоненциальным бэкоффом и «sleep‑кодами», гибкие задержки (фикс/рандом/функция), SkipNonHTMLMiddleware для отбрасывания не‑HTML.

🔘Богатый набор pipelines «из коробки»: JSONL, CSV, XML, SQLite, MsgPack, Polars/Parquet, Excel, YAML, Avro, куча БД (Postgres, MySQL, Mongo, Cassandra, DynamoDB, DuckDB и др.), S3, FTP/SFTP, Elasticsearch, Google Sheets, Snowflake, вебхуки и Taskiq‑очереди.

🔘Поддержка разных event loop’ов: стандартный asyncio (run_spider), uvloop на *nix, winloop на Windows и trio‑бэкенд (run_spider_trio) — для I/O‑bound задач это даёт 2–4x прирост.

🔘JavaScript‑страницы можно рендерить через экспериментальную интеграцию с Lightpanda/Chrome по CDP (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
5👍2🔥1