URL-адрес изображения для веб-скрепинга для серии событий в ESPN Play-By-Play - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь использовать очистку веб-страниц для создания набора данных play by play из ESPN.Я выяснил большую часть этого, но не смог сказать, для какой команды это событие, так как оно закодировано только в ESPN в виде изображения.Лучший способ решить эту проблему - это получить URL-адрес логотипа для каждой записи и сравнить его с URL-адресом логотипа для каждой команды в верхней части страницы.Тем не менее, я не смог понять, как получить атрибут, такой как URL-адрес из изображения.

Я запускаю это на R и использую пакет rvest.URL, который я очищаю, - https://www.espn.com/mens-college-basketball/playbyplay?gameId=400587906, и я очищаю его с помощью расширения SelectorGadget Chrome.Я также попытался сравнить имя игрока с boxscore, в котором перечислены все игроки, но в каждой команде есть игрок с фамилией Джонс, поэтому я бы предпочел получить команду, посмотрев наизображение, так как это всегда будет правильно.

library(rvest)
url <- "https://www.espn.com/mens-college-basketball/playbyplay?gameId=400587906"
webpage <- read_html(url)


# have been able to successfully scrape game_details and score
game_details_html <- html_nodes(webpage,'.game-details')
game_details <- html_text(game_details_html) %>% as.character()

score_html <- html_nodes(webpage,'.combined-score')
score <- html_text(score_html)


# have not been able to scrape image    
ImgNode <- html_nodes(webpage, css = "#gp-quarter-1 .team-logo")
link <- html_attr(ImgNode, "src")

Для каждого события я хочу, чтобы оно было помечено как "Duke" или "Wake Forest".

Есть ли способ создать URL для каждого изображения?Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 24 июня 2019

"https://a.espncdn.com/combiner/i?img=/i/teamlogos/ncaa/500/150.png&h=100&w=100" «https://a.espncdn.com/combiner/i?img=/i/teamlogos/ncaa/500/154.png&h=100&w=100"

Ваш код возвращает их. 500/150 - герцог, а 500/154 - лес Уэйк. Вы можете создать простой фрейм данных с ними, а затем объединить таблицы.

link_df <- as.data.frame(link)

link_ref_df <- data.frame(link = c("https://a.espncdn.com/combiner/i?img=/i/teamlogos/ncaa/500/150.png&h=100&w=100", "https://a.espncdn.com/combiner/i?img=/i/teamlogos/ncaa/500/154.png&h=100&w=100"),
                             team_name = c("Duke", "Wake Forest"))

link_merged <- merge(link_df, 
                    link_ref_df,
                    by = 'link',
                    all.x = T)

Это не масштабируемо, если вы делаете сотни из них с другими командами, но работает для этой конкретной опции.

...