要在Rust中爬取网页上的所有链接,可以使用一些Rust的库,例如reqwest和scraper。
添加依赖
要在rust中使用reqwest和scraper,需先在Cargo.toml文件中添加依赖:
[dependencies]
reqwest = { version = "0.11", features = ["blocking","json"] }
scraper = { version = "0.14" }
代码实现
首先,使用reqwest库来获取网页的HTML内容,然后使用scraper库来解析HTML并获取所有链接;
use reqwest::blocking::Client;
use scraper::{Html, Selector};
fn main() {
let client = Client::new();
let response = client.get("https://www.baidu.com").send().unwrap();
let html = response.text().unwrap();
let document = Html::parse_document(&html);
let selector = Selector::parse("a").unwrap();
for element in document.select(&selector) {
if let Some(link) = element.value().attr("href") {
println!("{}", link);
}
}
}
这个示例中,我们首先使用Html::parse_document函数将HTML文本解析为一个scraper::Html类型的文档。然后,我们使用Selector::parse函数创建一个选择器来选择所有元素。最后,我们使用for循环遍历所有匹配的元素,并使用element.value().attr("href")方法获取链接。
原创地址: https://www.perfcode.com/p/scrape-all-links-on-a-webpage-using-rust.html
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询