使用Genius软件包获取歌词时,未找到(HTTP 404)错误

时间:2019-08-23 13:28:00

标签: r genius-api

我创建一个dataset,其中包含甲壳虫乐队的所有原始歌曲。我想使用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中的歌曲不匹配,但我不知道如何检查它。那么我应该怎么做才能同时获得所有歌曲的歌词?

2 个答案:

答案 0 :(得分:0)

purrr程序包具有处理警告和错误的数字功能。我建议以下内容受this example的启发:

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()

答案 1 :(得分:0)

对于您而言,获取歌曲结果的最佳方法是使用add_genius()

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

出于这个原因,genius软件包具有功能possible_lyrics()possible_album()。下次尝试!