VCMonitor 开发笔记
date
Aug 21, 2022
slug
build-vcmonitor
status
Published
tags
product
Node.js
Docker
summary
type
Post
前言
未完成。
笔记
- [1] 除了对整个页面进行截取,Chrome 还支持对页面某个元素进行截取。通过
elementHandle.screenshot()
可针对具体元素进行截取。
这就很实用了,能够满足大部分自定义的需求。大多数情况下,我们只对 body 部分感兴趣,通过只对 body 进行截取,就不用指定长宽而且自动排除掉 body 外多余的留白等。其参数与
page.screenshot()
一样。需要注意的是,虽说一样,但其中是不能使用 fullPage
参数的。因为针对元素进行图片截取已经表明是局部截图了,与 fullPage
截取整个页面是冲突的,但它还是会自动滚动以截取完整的这个元素, fullPage
的优点没有丢掉。- [3] 本文的
pageScraper.js
代码似乎有点问题。具体来说,这个函数
在本地测试一切正常。在 Docker 中运行,当第二遍执行任务时几乎都会报错:
将
resolve
与 await
调换顺序后不再出现错误。参考资料
- Puppeteer 截图及相关问题 - 博客园
- Running Puppeteer in Docker Troubleshooting | Puppeteer