我正在尝试在YouTube上搜索我喜欢播放列表的歌曲的视频ID。我无法使用YouTube API来执行此操作,因为它们每天仅允许100次搜索。我遇到的问题是,大约有一半的时间在我发送请求时,它会返回一个有效的响应,并带有包含用于标识所需视频的类的正文。但是,另一半时间它给我的响应数据看起来像是正确的格式,但是不包含任何视频类别。更不常见的是,我会返回一个随机视频ID,但这只会像1/15请求那样发生。我尝试与邮递员提出相同的请求,并且每次包含该类时,我得到的响应都是正确的。老实说,我不确定自己在做什么错,因为所有请求也都返回200状态。这是代码:
//let link = "https://www.youtube.com/results?search_query=" + encodeURIComponent(songName)
let link = "https://www.youtube.com/results?search_query=rainy+streets+blue+in+green"
try {
const response = await axios.get(link);
let data = response.data
let dom = new JSDOM(data)
let topVideo = dom.window.document.querySelector('.yt-lockup.yt-lockup-tile.yt-lockup-video.vve-check.clearfix')
console.log(data)
let topVideoID = topVideo.getAttribute("data-context-item-id")
console.log(topVideoID)
} catch (error) {
console.error(error);
}
}