|
| 1 | +vi har diskografien.csv. |
| 2 | +Den har vi fået ved rgenius::diskografien <- get_genius_artist_songs(9534) |
| 3 | + |
| 4 | +og den kan indlæses ved: |
| 5 | +disko <- read_csv("data-raw/diskografien.csv") |
| 6 | + |
| 7 | +der er et sang-id. |
| 8 | + |
| 9 | +Det kan vi bruge til at hente metadata. |
| 10 | + |
| 11 | +response <- GET(url = str_glue("https://api.genius.com/songs/{song_id}"), |
| 12 | + query = list(access_token = Sys.getenv('GENIUS_API_TOKEN')), quiet = TRUE) |
| 13 | + |
| 14 | + |
| 15 | +response %>% content() |
| 16 | + |
| 17 | +og i disse metadata vi også finde albumnavnet. Så det skal vi have trukket ud. |
| 18 | +det skal vi have gemt til en dataframe |
| 19 | + |
| 20 | +blandt disse meta data er der en relativ sti til genius-hjemmesiden |
| 21 | +eget_kald$response$song$path |
| 22 | +den kan vi lave til en absolut sti. |
| 23 | +paste0("https://genius.com",eget_kald$response$song$path) |
| 24 | + |
| 25 | +og så kan vi bruge |
| 26 | +lyrics_from_url <- function(url){ |
| 27 | + page <- read_html(url) |
| 28 | + page %>% html_nodes("body") %>% |
| 29 | + html_nodes("#application") %>% |
| 30 | + html_nodes("#lyrics-root") %>% |
| 31 | + html_nodes('[data-lyrics-container="true"]') %>% |
| 32 | + as.character() %>% |
| 33 | + str_remove_all(pattern = "<a href.*?>") %>% |
| 34 | + str_remove_all(pattern = "<\\a>") %>% |
| 35 | + str_remove_all(pattern = "<span.*?>") %>% |
| 36 | + str_remove_all(pattern = "<\\span>") %>% |
| 37 | + paste0(collapse = "\n") %>% |
| 38 | + read_html() %>% |
| 39 | + html_text2(preserve_nbsp = TRUE) %>% |
| 40 | + str_split("\\n") %>% |
| 41 | + unlist()} |
| 42 | + |
| 43 | +til at få teksten ud. |
0 commit comments