我想做一个python程序,当给它一个指向Spotify播放列表的链接时,它将返回一个曲目名列表。这就是我目前所拥有的。你知道吗
from bs4 import BeautifulSoup
from selenium import webdriver
url="https://open.spotify.com/playlist/1xXEN6UhQEMsVhX4KitlhW"
driver = webdriver.Firefox()
driver.get(url)
page = driver.page_source
page_soup = BeautifulSoup(page,'html.parser')
tracks = page_soup.findAll("div",{"class":"tracklist-name"})
print(tracks)
print(len(tracks))
driver.close()
然而,这只返回前100首歌曲。我发现在浏览器的开发者控制台中输入document.getElementsByClassName("tracklist-name")
也只会返回前100首歌曲,除非我已经滚动到页面底部,所以我想先滚动到页面底部,但是window.scrollTo(0, document.body.scrollHeight)
不起作用,因为播放列表不在主体中,页面的实际主体根本无法滚动(我不知道所有的技术术语,我是Javascript的新手)。你知道吗
那么,我该如何编写一个脚本,滚动到Spotify播放列表的底部,这样我就可以提取所有的歌曲,而不仅仅是前100首?你知道吗
SpotifyAPI要求你注册一个许可证,这是一个有点过头了,只是一个小项目我的工作,但我已经设法博得这个脚本一起工作。如果有人在未来看到这个职位希望做一个类似的项目,我,请不要复制这个代码。太可怕了。你知道吗
这不是使用滚动的答案,但您可以直接从Spotify api获取数据:
https://developer.spotify.com/documentation/web-api/reference/playlists/get-playlists-tracks/
请注意,一次最多只能获取100个曲目标题,因此必须发出多个请求并使用offset参数。这也是为什么你的浏览器一次只能加载100首歌曲。你知道吗
相关问题 更多 >
编程相关推荐