我创建一个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中的歌曲不匹配,但我不知道如何检查它。那么我应该怎么做才能同时获得所有歌曲的歌词?
答案 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()
。下次尝试!