mirror of
https://codeberg.org/icewind/ugc-scaper.git
synced 2026-06-03 18:24:10 +02:00
fix selectors
This commit is contained in:
parent
63fee7e964
commit
7047938329
3 changed files with 15 additions and 11 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -1540,7 +1540,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ugc-scraper"
|
name = "ugc-scraper"
|
||||||
version = "0.3.1"
|
version = "0.3.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"insta",
|
"insta",
|
||||||
"main_error",
|
"main_error",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "ugc-scraper"
|
name = "ugc-scraper"
|
||||||
version = "0.3.1"
|
version = "0.3.2"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.67.0"
|
rust-version = "1.67.0"
|
||||||
description = "Scraper for ugcleague.com"
|
description = "Scraper for ugcleague.com"
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@ const SELECTOR_PLAYER_TEAM_SINCE: &str = "small";
|
||||||
|
|
||||||
const SELECTOR_AVATAR: &str =
|
const SELECTOR_AVATAR: &str =
|
||||||
r#"a[href*="https://www.ugcleague.com/players_page.cfm?player_id="] img.img-responsive"#;
|
r#"a[href*="https://www.ugcleague.com/players_page.cfm?player_id="] img.img-responsive"#;
|
||||||
const SELECTOR_CLASS: &str = r#"img.img-rounded[src*="images/tf2/icon/"]"#;
|
const SELECTOR_CLASS: &str =
|
||||||
|
r#"img.img-rounded[src*="images/tf2/icon/"], img.img-rounded[data-cfsrc*="images/tf2/icon/"]"#;
|
||||||
|
|
||||||
pub struct PlayerParser {
|
pub struct PlayerParser {
|
||||||
selector_name: Selector,
|
selector_name: Selector,
|
||||||
|
|
@ -103,14 +104,17 @@ impl Parser for PlayerParser {
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.to_string();
|
.to_string();
|
||||||
|
|
||||||
let avatar = document
|
let avatar_element =
|
||||||
|
document
|
||||||
.select(&self.selector_avatar)
|
.select(&self.selector_avatar)
|
||||||
.next()
|
.next()
|
||||||
.ok_or(ParseError::ElementNotFound {
|
.ok_or(ParseError::ElementNotFound {
|
||||||
selector: SELECTOR_AVATAR,
|
selector: SELECTOR_AVATAR,
|
||||||
role: "player avatar",
|
role: "player avatar",
|
||||||
})?
|
})?;
|
||||||
|
let avatar = avatar_element
|
||||||
.attr("src")
|
.attr("src")
|
||||||
|
.or_else(|| avatar_element.attr("data-cfsrc"))
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.to_string();
|
.to_string();
|
||||||
|
|
||||||
|
|
@ -151,7 +155,7 @@ impl Parser for PlayerParser {
|
||||||
|
|
||||||
let favorite_classes = document
|
let favorite_classes = document
|
||||||
.select(&self.selector_class)
|
.select(&self.selector_class)
|
||||||
.filter_map(|class| class.attr("src"))
|
.filter_map(|class| class.attr("src").or_else(|| class.attr("data-cfsrc")))
|
||||||
.filter_map(|img| {
|
.filter_map(|img| {
|
||||||
img.strip_prefix("images/tf2/icon/")
|
img.strip_prefix("images/tf2/icon/")
|
||||||
.and_then(|class| class.strip_suffix(".jpg"))
|
.and_then(|class| class.strip_suffix(".jpg"))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue