为什么对YouTube的相同GET请求在一半时间返回不同的html数据?

时间:2020-06-25 22:52:55

标签: html node.js get youtube axios

我正在尝试在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);
    }
}

0 个答案:

没有答案