การดาวน์โหลดหน้าเว็บ

Rust:
การดาวน์โหลดหน้าเว็บ

วิธีการ:

ลองดาวน์โหลดหน้าเว็บโดยใช้ reqwest crate ของ Rust, ซึ่งเสนอ API แบบอะซิงโครนัสที่ง่ายต่อการทำ HTTP request

ก่อนอื่น, เพิ่ม 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!("Body:\n{}", body);

    Ok(())
}

ตัวอย่างผลลัพธ์อาจดูเป็นแบบนี้, แต่เนื้อหาจริงอาจแตกต่างกันไป:

Body:
<!doctype html>
<html>
<head>
    <title>Example Domain</title>
...
</body>
</html>

รายละเอียดเพิ่มเติม

reqwest crate เป็นหนึ่งในวิธีที่ง่ายที่สุดในการดาวน์โหลดเนื้อหาเว็บใน Rust มันถูกพัฒนาขึ้นมาจากไลบรารี HTTP รุ่นก่อนๆ, โดยให้ทั้งส่วนติดต่อแบบซิงโครนัสและแบบอะซิงโครนัส

ทางเลือกอื่นรวมถึงไลบรารีที่มีระดับต่ำกว่าเช่น hyper (ซึ่ง reqwest เองก็ใช้ใต้ฮูด), หรือใช้การผูก curl สำหรับ Rust

ขั้นตอนหลักในการดาวน์โหลดหน้าเว็บประกอบด้วยการทำ HTTP GET request และการประมวลผลคำตอบ การเขียนโปรแกรมแบบอะซิงโครนัสด้วย tokio หมายความว่าแอปของคุณยังคงตอบสนองขณะที่การดำเนินการของเครือข่ายเสร็จสิ้น

ดูเพิ่มเติม: