blob: 792b070adb7c7d327d4ffa56a1b0974a2fb0cd52 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
use select::document::Document;
use select::node::Node;
use select::predicate::Name;
use select::predicate::Predicate;
/// Return the href attribute content for the closest anchor found by `text`.
pub fn get_link_from_text(document: &Document, text: &str) -> Option<String> {
let a_elem = document
.find(Name("a").and(|x: &Node| x.children().any(|x| x.text() == text)))
.next()?;
Some(a_elem.attr("href")?.to_string())
}
/// Return the href attributes of all links that start with the specified `prefix`.
pub fn get_link_hrefs_with_prefix(document: &Document, prefix: &str) -> Vec<String> {
let mut vec: Vec<String> = Vec::new();
let a_elements = document.find(Name("a"));
for element in a_elements {
let s = element.attr("href").unwrap_or("");
if s.to_string().starts_with(prefix) {
vec.push(s.to_string());
}
}
vec
}
|