我如何用Google的Puppeteer抓取整个网站,所有的CSS/JavaScript/媒体都完好无损(而不仅仅是HTML)?在成功地尝试了其他抓取工作之后,我想它应该能够。
然而,通过在线查看许多优秀的示例,没有明显的方法来做到这一点。我能找到的最近的电话是
html_contents = await page.content()
并保存结果,但这会保存一个没有任何非HTML元素的副本。
有没有办法保存网页以供Puppeteer脱机使用?
发布于 2019-02-22 07:46:44
目前可以使用MHTML格式通过实验CDP调用'Page.captureSnapshot'
:
'use strict';
const puppeteer = require('puppeteer');
const fs = require('fs');
(async function main() {
try {
const browser = await puppeteer.launch();
const [page] = await browser.pages();
await page.goto('https://en.wikipedia.org/wiki/MHTML');
const cdp = await page.target().createCDPSession();
const { data } = await cdp.send('Page.captureSnapshot', { format: 'mhtml' });
fs.writeFileSync('page.mhtml', data);
await browser.close();
} catch (err) {
console.error(err);
}
})();
https://stackoverflow.com/questions/54814323
复制相似问题