提问人:gothaf 提问时间:10/15/2022 更新时间:10/15/2022 访问量:867
Puppeteer 下载嵌入式 PDF 文件
Puppeteer download embedded PDF file
问:
我正在访问一个页面,该页面包含pdf文件的链接。该链接将打开一个新选项卡,其内容如下所示:
<html>
<head></head>
<body style="height: 100%; width: 100%; overflow: hidden; margin:0px; background-color: rgb(38, 38, 38);">
<embed name="B4133D167D3B030DC294D8CA8F6FC5FE" style="position:absolute; left: 0; top: 0;" width="100%" height="100%" src="about:blank" type="application/pdf" internalid="B4133D167D3B030DC294D8CA8F6FC5FE">
</body>
</html>
Embedded是我想下载的pdf。
到目前为止,我提出的唯一解决方案是手动更改默认行为以下载 PDF,但每次重新启动浏览器时,它都会重置。另外,我无法在无头模式下测试此解决方案......chrome://settings/content/pdfDocuments
我尝试使用此列表中的标志启动 chromium,但没有运气。--print-to-pdf
有谁知道,如果 Puppeteer 可以以“下载 PDF”作为默认行为启动 chromium,而无需将其绑定到配置文件?
有谁知道是否有另一种解决方案让 Puppeteer 下载嵌入式 pdf?
谢谢。
答:
我得到了一个解决方案,现在可以使用 chrome 配置文件完成这项工作。
我在浏览器中创建了一个新的配置文件。我将下载目录和 PDF 的默认行为设置为“下载 PDF”。
我在某处创建了一个新文件夹,供 chromium 用作其数据目录。
我将之前创建的名为“Profile 2”的配置文件文件夹粘贴到新创建的文件夹中。
然后在 puppeteer 上,我启动了带有以下标志的 chromium:
--user-data-dir=newly_created_folder
--profile-directory=Profile 2
我必须同时设置两者,因为当 chromium 首次启动时,它会用自己的文件填充用户目录。
每次浏览器重新启动时,都必须覆盖位于“user-data-dir”foder 上的文件。我最终在每次执行之前删除了该文件。SingletonLock
puppeteer.launch(options)
为了在无头模式下工作,我设置了参数而不是 true。headless: 'chrome'
这适用于傀儡师 17 和 18。我也在版本 14、15 和 16 中测试了它,但没有运气。
不过,如果有人知道下载嵌入式 PDF 的更好解决方案,请分享。
谢谢
评论