Rust:
Analiza składniowa HTML
Jak to zrobić:
Aby parsować HTML w Rust, często używa się pakietu scraper
, który dostarcza wysokopoziomowy interfejs do przeglądania i manipulowania dokumentami HTML.
Najpierw dodaj scraper
do swojego Cargo.toml
:
[dependencies]
scraper = "0.12.0"
Następnie, oto prosty przykład, który wydobywa wszystkie adresy URL linków z danego ciągu HTML:
extern crate scraper;
use scraper::{Html, Selector};
fn main() {
let html = r#"
<html>
<body>
<a href="http://example.com/1">Link 1</a>
<a href="http://example.com/2">Link 2</a>
</body>
</html>
"#;
let document = Html::parse_document(html);
let selector = Selector::parse("a").unwrap();
for element in document.select(&selector) {
let link = element.value().attr("href").unwrap();
println!("Znaleziono link: {}", link);
}
}
Wyjście:
Znaleziono link: http://example.com/1
Znaleziono link: http://example.com/2
W tym przykładzie parsujemy prosty dokument HTML, aby znaleźć wszystkie elementy <a>
i wydobyć ich atrybuty href
, skutecznie wypisując adresy URL wszystkich linków w dokumencie. Biblioteka scraper
upraszcza parsowanie HTML i selekcjonowanie konkretnych elementów za pomocą selektorów CSS, czyniąc ją dobrym wyborem do zadań związanych z web scrapingiem w Rust.