我有一个RPi 4,我希望通过终端生成一个website.html,它具有网页的完整呈现的html。我想以此来搜索整个页面的字符串或模式等要做到这一点,例如...我可以做到这一点使用类似wget
或curl
例如wget -O website.html https://www.example.com
上面就是我想要的,但它不支持javascript。
一些网站(例如Google)几乎所有内容都包含在javascript中,因此我无法通过这种方式获得最终的html。
PhantomJs
但是它们无法正常工作,并且无法再维护。Puppeteer
但是只能抓取屏幕截图。不是HTML。我以为page.content()
有我想要的东西,但无法获取/将其写入文件。当我console.log
编辑它的时候,我也在那里看到了javascript ...如果有人知道如何使用Puppeteer(用最终的html编写文件),那么请告诉我。难道没有像wget
javascript这样的“简单”解决方案吗?是否没有简单的工作流程/说明来实现这样的目标?
如果您可以告诉我一些有效的命令来执行此操作,请告诉我。我发现有些工具非常复杂,并且我不熟悉所有的编程语言才能完成这项工作。
任何帮助将不胜感激。
如果安装了Node.js和Puppeteer,则可以使用此简单脚本来获取执行JavaScript的HTML。用作:
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句