gpt4 book ai didi

javascript - 在GO中通过http请求检索网站DOM

转载 作者:行者123 更新时间:2023-12-01 00:34:57 26 4
gpt4 key购买 nike

在 GO 中,我使用 HTTP 请求来获取网站 html,我发现某些元素与在 Chrome 中使用 Inspect 时有所不同。在 google 中的搜索和一些阅读使我了解到,我在 Inspect 中看到的是一个名为 DOM 的阶段,它采用原始 html 并运行一些添加信息和更改元素的 java 脚本(对我来说,我是新手) ^_^)。为什么我可以在 GO 中接收 DOM 而不是原始 html?我知道我可以使用 Chromedp,但我希望有一些更像某种 HTTP 包的东西,因为 Chromedp 对性能有点重。我真的很感激任何建议,谢谢。

最佳答案

一个简单的 HTTP 请求(通过 Go 或其他任何方式)只能获取原始 HTML。 DOM 是浏览器生成的对原始 HTML 的解释。是的,甚至还有类似 Shadow DOM 的东西。 .

JavaScript 由浏览器的 JavaScript 引擎解释,该引擎将更改应用于 DOM、添加事件监听器并动态操作所述 DOM。

这就是为什么你无法通过 HTTP 请求获取在浏览器中看到的 DOM 状态。该请求不包含通过浏览器的 JavaScript 引擎完成的所有客户端 DOM 操作。请求库不是浏览器。

要访问您习惯在开发人员工具中看到的完整渲染的 DOM,您将需要更复杂的网络抓取设置,通常涉及 headless 浏览器,例如 Puppeteer 。然而,这是用 Node.js 编写的。考虑到 Go,你可能会拥有更好的运气 chromedpcdp .

关于javascript - 在GO中通过http请求检索网站DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com