0

我创建了一个数据集,其中包含披头士乐队的所有原创歌曲。我想使用genius包获取所有歌曲的歌词。我使用以下代码获取歌词但抛出错误。

map(beatles_songs$song, ~ genius_lyrics("The Beatles", ., "simple"))
Error in read_xml.response(x$response, ..., as_html = as_html) : 
  Not Found (HTTP 404).
In addition: Warning message:
In request_GET(session, url) : Not Found (HTTP 404).

我想这可能是因为列表中的歌曲名称与genius.com中的歌曲不匹配,但我不知道如何检查。那么我应该怎么做才能同时获取所有歌曲的歌词呢?

4

2 回答 2

0

purrr软件包有许多处理警告和错误的函数。受此示例的启发,我建议如下内容:

genius_lyrics_s <- safely(genius::genius_lyrics)

beatles_songs <- tibble(song = c("Mr. Moonlight", "She Loves You", "Under my Thumb", "Octopus's Garden"))
map(beatles_songs$song, ~ genius_lyrics_s("The Beatles", ., "simple")) %>% 
map("result") %>%
  compact()
于 2019-08-23T14:43:44.190 回答
0

在您的情况下,获得歌曲结果的最佳方法是使用add_genius().

beatles %>%
  add_genius("The Beatles", song)

天才包具有功能possible_lyrics()possible_album()正是出于这个原因。下次试试这个!

于 2019-09-24T12:20:25.127 回答