Jes*_*yer 7 dom chromium google-chrome-headless
Chrome的文档说明:
--dump-dom标志将document.body.innerHTML打印到stdout:
根据标题,如何将更多的DOM对象(理想情况下全部)转移到Chromium无头?我可以通过开发人员工具手动保存整个DOM,但我想要一个程序化的解决方案.
更新 2019-04-23 谷歌在无头方面非常活跃,发生了许多更新
下面的答案适用于 v62 当前版本是 v73,并且它一直在更新。 https://www.chromestatus.com/features/schedule
我强烈建议检查 puppeteer 是否有无头 chrome 的任何未来发展。它由 Google 维护,它会安装所需的 Chrome 版本和npm 包,因此您只需使用文档中的 puppeteer API,而不必担心 Chrome 版本并设置无头 Chrome 和开发工具 API 之间的连接,这可以实现 99% 的魔法.
更新 2017-10-29 Chrome 已经有 --dump-html 标志,它返回完整的 HTML,而不仅仅是正文。
v62 确实有它,它已经在稳定频道上。
解决此问题的问题:https : //bugs.chromium.org/p/chromium/issues/detail?id=752747
当前 chrome 状态(每个频道的版本)https://www.chromestatus.com/features/schedule
为遗产留下旧答案
您可以使用 google chrome 远程界面来完成。我已经尝试过了,浪费了几个小时试图启动 chrome 并获得完整的 html,包括标题,但它还没准备好,我想说。
它有时会起作用,但我尝试在生产环境中运行它并且不时出现错误。所有类型的随机错误,如
connection reset和no chrome found to kill。这些错误有时会出现并且很难调试。
--dump-dom当我需要正文时,我个人使用获取 html,当我需要标题时,我curl现在只使用它。当然,chrome 可以从 SPA 应用程序中为您提供标题,如果标题是从 JS 设置的,则仅使用 curl 无法完成。有稳定的解决方案后将切换到谷歌浏览器。希望
--dump-html在 chrome上有标志并获得所有 html。如果 Google 的工程师正在阅读本文,请将此类标志添加到 chrome。我在 Chrome 问题跟踪器上创建了问题,请点击最喜欢的“明星”以引起谷歌开发人员的注意:
https://bugs.chromium.org/p/chromium/issues/detail?id=752747
这是 chrome 的所有类型标志的长列表,不确定它是否已满和所有标志:https : //peter.sh/experiments/chromium-command-line-switches/没有转储标题标签。
这段代码来自谷歌的博客文章,你可以试试你的运气:
Run Code Online (Sandbox Code Playgroud)const CDP = require('chrome-remote-interface'); ... (async function() { const chrome = await launchChrome(); const protocol = await CDP({port: chrome.port}); // Extract the DevTools protocol domains we need and enable them. // See API docs: https://chromedevtools.github.io/devtools-protocol/ const {Page, Runtime} = protocol; await Promise.all([Page.enable(), Runtime.enable()]); Page.navigate({url: 'https://www.chromestatus.com/'}); // Wait for window.onload before doing stuff. Page.loadEventFired(async () => { const js = "document.querySelector('title').textContent"; // Evaluate the JS expression in the page. const result = await Runtime.evaluate({expression: js}); console.log('Title of page: ' + result.result.value); protocol.close(); chrome.kill(); // Kill Chrome. }); })();来源:https : //developers.google.com/web/updates/2017/04/headless-chrome
| 归档时间: |
|
| 查看次数: |
3329 次 |
| 最近记录: |