使用 Javascript 从 Google 搜索结果页面中提取 url 时的奇怪行为

Strange behaviour when extract url from Google Search Result Page with Javascript

今天我有兴趣在 Chrome 中尝试以下有趣的 Javascript 片段:-

Array.from(document.getElementsByClassName('r')).forEach(x => console.log(x.firstChild.href))

正如预期的那样,这列出了我控制台中的所有目标 url(没有 Google 跟踪)。然而,当我尝试检查 anchorhref 时,结果发现 href 实际上是 Google 跟踪 url 和目标 url(没有 Google 跟踪)在 data-href 中。

我希望 href 的值应该是目标 url(没有 Google 跟踪)。我可以知道造成这种差异的原因是什么吗?

事实上,我注意到 Google 搜索结果页面中的锚点会在鼠标单击时触发一个事件,该事件会更改 href 的原始值并将其嵌入 data-href 相反。

这意味着只要锚点没有被点击,href 的值的原始 url 将被保留。

我目前的知识不允许我进一步深入,欢迎任何更详细或技术性的解释! =)