'View page source' 和 document.querySelector("html").innerHTML 之间的区别是什么?

How come the difference between 'View page source' and document.querySelector("html").innerHTML?

我想从此 YouTube 页面 (link) 中提取字幕。
通过 'View page source'.

查找时,我发现了 timedtext

但当我通过 javascript 控制台搜索时却没有。它不会找到它:

document.querySelector("html").innerHTML.match("timedtext")

但对于 this 其他 YouTube 页面,它实际上两者都有效。

为什么会有差异,如何解决?

,如果您想使用这种方式提取字幕,请考虑搜索脚本标签有 ytInitialData 变量 = 那就是那个有时间文本的 url 的变量。

我看不出区别,但是,我假设 javascript 代码会在页面加载后注入 HTML 代码。

粘贴您在 中分享的行后:

ytInitialPlayerResponse.captions.playerCaptionsTracklistRenderer.captionTracks

我得到了可用语言的定时文本。不过请记住,可能并非所有视频都有 auto-generated 字幕 - example

在那个例子中,我没有得到字幕,所以,我不认为检查页面的源代码适用于所有视频。