Rust:
Завантаження веб-сторінки
Як це зробити:
Для завантаження веб-сторінки в Rust ми використаємо крейт reqwest
, який є зручним HTTP клієнтом. Переконайтеся, що добавили reqwest
до вашого Cargo.toml
.
use reqwest;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let url = "https://www.example.com";
let response = reqwest::get(url).await?;
let body = response.text().await?;
println!("Body:\n{}", body);
Ok(())
}
Цей код асинхронно завантажить вміст сайту https://www.example.com
і виведе його у консоль.
Поглиблений розбір:
Завантаження веб-сторінок є фундаментальною частиною веб-скрапінгу та моніторингу контенту, починаючи з ранніх днів інтернету. Раніше програмісти часто використовували командо-орієнтовані утиліти, як-от curl
у скриптах shell. Сьогодні, у світі Rust, ми маємо багато асинхронних HTTP-бібліотек як от reqwest
, який пропонує високорівневий інтерфейс. Існують також інші крейти, наприклад hyper
, який є більш низькорівневим.
reqwest
підтримує асинхронність, що є важливою особливістю у Rust, забезпечуючи ефективну конкурентність. Ця бібліотека працює за допомогою tokio
, потужного асинхронного рантайму. Коли використовуєте функцию reqwest::get()
, ви насправді відправляєте HTTP GET запит на сервер і чекаєте на відповідь. Після отримання відповіді, ви можете маніпулювати отриманими даними в зручному форматі.
Дивіться також:
- Офіційна документація
reqwest
: https://docs.rs/reqwest/ - Руководство Tokio: https://tokio.rs/tokio/tutorial/setup
- Асинхронне програмування в Rust: https://rust-lang.github.io/async-book/
hyper
крейт: https://docs.rs/hyper/