Frontend Hash
3.32K subscribers
230 photos
31 videos
2 files
388 links
Download Telegram
Разрываем интернет на Rust: свой многопоточный веб-краулер за вечер

Краулер это один из тех проектов, где Rust показывает свою истинную мощь. Тысячи одновременных соединений, разбор HTML, работа с очередями и разделяемым состоянием, жесткие требования по памяти. На Python вы быстро упрётесь в GIL, на Go получите хорошую производительность, но на Rust с tokio вы выжимаете из одной машины всё возможное. Сегодня построим краулер, который обходит сайт в несколько потоков, уважает robots.txt, ограничивает глубину, дедуплицирует ссылки, извлекает текст и заголовки страниц и складывает всё в JSONL файл. Это не игрушка. С небольшими допиливаниями вы сможете пихать в него миллионы URL.

Что именно мы строим
Разберёмся, что именно нам нужно от краулера. На вход он получает стартовый URL, максимальную глубину обхода и число параллельных рабочих. Дальше он качает страницы, вытаскивает ссылки из тегов a, фильтрует их по домену, чтобы не убежать на весь интернет, добавляет новые URL в очередь и записывает результат в файл. Главная идея схемы: один поставщик задач, много рабочих, один писатель результатов, и всё это связано каналами mpsc из tokio. Блокирующих вызовов нет, разделяемых мьютексов минимум.

https://uproger.com/razryvaem-internet-na-rust-svoj-mnogopotochnyj-veb-krauler-za-vecher/
🔥1
🖥 На Stepik обновили курс «C# с нуля до профи»

Представьте: через четыре месяца вы открываете чужой .NET-проект и читаете его как книгу.

IServiceCollection не вызывает ступора. async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.

Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.

ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.

А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.

Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/
Please open Telegram to view this post
VIEW IN TELEGRAM