In Rust, you can use the scraper
crate, which is a web scraping library that provides tools for parsing HTML and navigating the DOM using CSS selectors. To use CSS selectors with scraper
, you'll need to do the following:
- Add the
scraper
crate to yourCargo.toml
file. - Parse the HTML document with
scraper
. - Use the
Selector
struct to create a CSS selector. - Use the
select
method to find elements that match the CSS selector.
Here's an example of how you can use CSS selectors with the scraper
crate in Rust:
First, add the scraper
crate to your Cargo.toml
:
[dependencies]
scraper = "0.12"
Now, you can write a Rust program that uses the scraper
crate to select elements using CSS selectors:
extern crate scraper;
use scraper::{Html, Selector};
fn main() {
// The HTML content you want to scrape
let html_content = r#"
<html>
<body>
<div class="info">
<p>Some information here</p>
</div>
<div class="info">
<p>More information here</p>
</div>
</body>
</html>
"#;
// Parse the HTML
let document = Html::parse_document(html_content);
// Create the CSS selector
let selector = Selector::parse(".info").unwrap();
// Select elements with the CSS selector
for element in document.select(&selector) {
// Do something with each selected element
if let Some(text) = element.text().next() {
println!("Text found: {}", text.trim());
}
}
}
This program will output:
Text found: Some information here
Text found: More information here
In this example, we are looking for div
elements with the class info
. The Selector::parse
method is used to create a Selector
from a CSS selector string. Once you have the Selector
, you use the select
method on the Html
document to get an iterator over all the matching elements. Then you can manipulate or extract data from these elements as needed.
Remember to handle errors accordingly in a real application, such as when a selector cannot be parsed or when no elements match the selector.