如何在文件中的 RPi javascript 之后获得完整的 html
How to get the complete html AFTER javascript on RPi in a file
我有一个树莓派 4,我想通过终端生成一个 website.html 具有完整呈现的 html 网页。
例如,我想这样做是为了在整个页面中搜索字符串或模式等...
我可以使用 wget
或 curl
之类的东西来做到这一点,例如 wget -O website.html https://www.example.com
以上就是我想要的,但是它不支持 javascript.
一些网站(比如Google)几乎所有的东西都在javascript,所以我无法通过这种方式获得最终的html。
- 我整天都在寻找一个可行的解决方案,我已经找到了
发现我需要类似无头浏览器的东西。我试过了
诸如
PhantomJs
之类的东西,但它们不起作用并且不再存在
维护。
- 我试过
Puppeteer
但我只能截取屏幕截图。不是 Html。我以为 page.content()
有我想要的,但我
无法将其 it/write 写入文件。当我 console.log
编辑它时,我也在那里看到了 javascript ...如果有人知道该怎么做(写一个
最后 html) 使用 Puppeteer 文件然后请告诉我。
难道没有像 wget
这样的 'easy' 解决方案也可以 javascript 吗?
难道没有一个简单的workflow/instructions来实现这样的事情吗?
如果你能告诉我一些工作命令来做到这一点,请告诉我。我发现有些工具非常复杂,而且我并不熟悉所有的编程语言才能完成这项工作。
如有任何帮助,我们将不胜感激。
如果您安装了 Node.js 和 Puppeteer,您可以使用这个简单的脚本来执行 HTML 和 JavaScript。用作:
node script.js url pagename
出于测试目的,默认url
是'http://example.com/'
,默认pagename
是当前目录下的'page-timestamp.html'
。
const fs = require('fs');
const puppeteer = require('puppeteer');
const url = process.argv[2] || 'http://example.com/';
const path = process.argv[3] || `page-${Date.now()}.html`;
(async function main() {
const browser = await puppeteer.launch();
const [page] = await browser.pages();
await page.goto(url, { waitUntil: 'networkidle0' });
fs.writeFileSync(path, await page.content());
await browser.close();
})().catch(console.error);
我有一个树莓派 4,我想通过终端生成一个 website.html 具有完整呈现的 html 网页。
例如,我想这样做是为了在整个页面中搜索字符串或模式等...
我可以使用 wget
或 curl
之类的东西来做到这一点,例如 wget -O website.html https://www.example.com
以上就是我想要的,但是它不支持 javascript.
一些网站(比如Google)几乎所有的东西都在javascript,所以我无法通过这种方式获得最终的html。
- 我整天都在寻找一个可行的解决方案,我已经找到了
发现我需要类似无头浏览器的东西。我试过了
诸如
PhantomJs
之类的东西,但它们不起作用并且不再存在 维护。 - 我试过
Puppeteer
但我只能截取屏幕截图。不是 Html。我以为page.content()
有我想要的,但我 无法将其 it/write 写入文件。当我console.log
编辑它时,我也在那里看到了 javascript ...如果有人知道该怎么做(写一个 最后 html) 使用 Puppeteer 文件然后请告诉我。
难道没有像 wget
这样的 'easy' 解决方案也可以 javascript 吗?
难道没有一个简单的workflow/instructions来实现这样的事情吗?
如果你能告诉我一些工作命令来做到这一点,请告诉我。我发现有些工具非常复杂,而且我并不熟悉所有的编程语言才能完成这项工作。
如有任何帮助,我们将不胜感激。
如果您安装了 Node.js 和 Puppeteer,您可以使用这个简单的脚本来执行 HTML 和 JavaScript。用作:
node script.js url pagename
出于测试目的,默认url
是'http://example.com/'
,默认pagename
是当前目录下的'page-timestamp.html'
。
const fs = require('fs');
const puppeteer = require('puppeteer');
const url = process.argv[2] || 'http://example.com/';
const path = process.argv[3] || `page-${Date.now()}.html`;
(async function main() {
const browser = await puppeteer.launch();
const [page] = await browser.pages();
await page.goto(url, { waitUntil: 'networkidle0' });
fs.writeFileSync(path, await page.content());
await browser.close();
})().catch(console.error);