我正在尝试保存网页,以供Nodejs和puppeteer脱机使用。我看到了很多带有以下示例:
await page.screenshot({path: 'example.png'});
但是对于较大的网页,这不是一个选择。因此,在puppeteer中更好的选择是加载页面,然后像这样保存:
const html = await page.content(); // ... write to file
确定,可以。现在,我将像推特一样滚动页面。因此,我决定屏蔽木偶页面中的所有图像:
page.on('request', request => { if (request.resourceType() === 'image') { const imgUrl = request.url() download(imgUrl, 'download').then((output) => { images.push({url: output.url, filename: output.filename}) }).catch((err) => { console.log(err) }) request.abort() } else { request.continue() } })
[好,我现在使用了'npm download'库来下载所有图像。是的,下载图像还可以:D。
现在保存内容时,我想将其指向源中的脱机图像。
const html = await page.content();
但是现在我想替换所有
<img src="/pic.png?id=123"> <img src="https://twitter.com/pics/1.png">
还有类似的东西:
<div style="background-image: url('this_also.gif')></div>
那么,有没有办法(在操纵p中)刮掉一个大页面并离线存储整个内容?
JavaScript和CSS也将不错
更新
现在,我将再次使用puppeteer打开大的html文件。
然后将所有文件截取为:https://dom.com/img/img.jpg,/ file.jpg,....
相同request.respond({ status: 200, contentType: 'image/jpeg', body: '..' });
我也可以使用Chrome扩展功能。但是我喜欢有一个带有某些选项的函数page.html(),与page.pdf()
我正在尝试保存网页,以供Nodejs和puppeteer脱机使用。我看到了很多示例:await page.screenshot({path:'example.png'});但是,使用较大的网页不是一种选择。 ...
让我们回到第一个,您可以使用fullPage
截屏。