mirror of
https://codeberg.org/icewind/ugc-scaper.git
synced 2026-06-03 10:14:11 +02:00
improve not found team detection
This commit is contained in:
parent
e71ba3b490
commit
cf8de44bbb
7 changed files with 42 additions and 29 deletions
|
|
@ -6,7 +6,7 @@ use scraper::{Html, Selector};
|
|||
|
||||
const SELECTOR_MATCH_FORMAT: &str = "h3.page-header > strong.styleColor";
|
||||
const SELECTOR_MATCH_COMMENT_AUTHOR: &str = ".row-fluid .col-md-12 span.text-success";
|
||||
const SELECTOR_MATCH_COMMENT: &str = ".row-fluid .col-md-12 > .white-row-light-small > p";
|
||||
const SELECTOR_MATCH_COMMENT: &str = ".row-fluid .col-md-12 > .text-center > p";
|
||||
const SELECTOR_MATCH_TEAM_LINK: &str = "a[href^=\"team_page\"]:not(.btn-large)";
|
||||
const SELECTOR_MATCH_RESULT_TEAM: &str =
|
||||
".table.table-condensed.table-bordered tr:nth-child(2) td:nth-child(1)";
|
||||
|
|
@ -119,10 +119,7 @@ impl Parser for MatchPageParser {
|
|||
role: "home team link",
|
||||
})?
|
||||
.first_text()
|
||||
.ok_or(ParseError::EmptyText {
|
||||
role: "home team name",
|
||||
selector: SELECTOR_MATCH_RESULT_TEAM,
|
||||
})?
|
||||
.unwrap_or_default()
|
||||
.to_string();
|
||||
let team_name_away = team_names
|
||||
.next()
|
||||
|
|
@ -131,10 +128,7 @@ impl Parser for MatchPageParser {
|
|||
role: "away team link",
|
||||
})?
|
||||
.first_text()
|
||||
.ok_or(ParseError::EmptyText {
|
||||
role: "away team name",
|
||||
selector: SELECTOR_MATCH_RESULT_TEAM,
|
||||
})?
|
||||
.unwrap_or_default()
|
||||
.to_string();
|
||||
|
||||
let mut team_scores = document.select(&self.selector_result_score);
|
||||
|
|
|
|||
|
|
@ -132,13 +132,14 @@ impl Parser for TeamParser {
|
|||
.unwrap_or_default()
|
||||
.to_string();
|
||||
|
||||
match (tag.as_str(), name.as_str()) {
|
||||
("", "") => return Err(ScrapeError::NotFound),
|
||||
(_, "") => name = tag.clone(),
|
||||
let image = document.select(&self.selector_image).next();
|
||||
|
||||
match (tag.as_str(), name.as_str(), image.is_some()) {
|
||||
("", "", false) => return Err(ScrapeError::NotFound),
|
||||
(_, "", true) => name = tag.clone(),
|
||||
_ => {}
|
||||
};
|
||||
|
||||
let image = document.select(&self.selector_image).next();
|
||||
let image = image.and_then(|image| {
|
||||
image
|
||||
.attr("data-cfsrc")
|
||||
|
|
|
|||
|
|
@ -267,12 +267,8 @@ impl Parser for TeamMatchesParser {
|
|||
role: "match team link",
|
||||
})?;
|
||||
|
||||
let team_name = select_text(document.root_element(), &self.selector_team_name).ok_or(
|
||||
ParseError::ElementNotFound {
|
||||
selector: SELECTOR_TEAM_NAME,
|
||||
role: "match team name",
|
||||
},
|
||||
)?;
|
||||
let team_name =
|
||||
select_text(document.root_element(), &self.selector_team_name).unwrap_or_default();
|
||||
let team = TeamRef {
|
||||
id: team_id,
|
||||
name: team_name.into(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue