Rust:
Загрузка веб-страницы
Как это сделать:
Давайте скачаем веб-страницу, используя крейт reqwest
для Rust, который предоставляет простой асинхронный API для выполнения HTTP-запросов.
Сначала добавьте reqwest
и tokio
в ваш Cargo.toml
:
[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }
Теперь в вашем коде на Rust:
use reqwest;
use tokio;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let url = "http://example.com";
let res = reqwest::get(url).await?;
let body = res.text().await?;
println!("Тело:\n{}", body);
Ok(())
}
Пример вывода может выглядеть так, хотя фактическое содержание будет различаться:
Тело:
<!doctype html>
<html>
<head>
<title>Пример домена</title>
...
</body>
</html>
Подробнее
Крейт reqwest
является одним из самых простых способов загрузки веб-контента в Rust. Он развивался из более ранних библиотек HTTP, предоставляя как синхронные, так и асинхронные интерфейсы.
К альтернативам относятся более низкоуровневые библиотеки, такие как hyper
(который сам reqwest
использует под капотом), или использование привязок curl
для Rust.
Ключевые шаги реализации загрузки страницы включают в себя создание HTTP GET-запроса и обработку ответа. Асинхронное программирование с tokio
означает, что ваше приложение остается отзывчивым, пока сетевая операция завершается.