【问题标题】:How to use Puppeteer to download PDF files from a website?如何使用 Puppeteer 从网站下载 PDF 文件?
【发布时间】:2021-12-12 18:23:07
【问题描述】:

我一直在尝试使用 Puppeteer 从特定网站下载 PDF 文件,但我如何让它下载所有文件,例如:

网站上的文件类似于 example.com/Contents/xxx-1.pdf 网站上的第二个文件类似于 example.com/Contents/xxx-2.pdf

如何使用 puppeteer 通过尝试添加的每个数字来自动下载文件内容?

【问题讨论】:

  • 我确实尝试过检查,但不幸的是没有,我需要文档的网站在特定文件夹中包含 PDF 文件示例 /Contents/Thesis1.pdf 和 /Contents/Thesis2.pdf 我正在尝试使用 Puppeteer自动添加序号并将PDF下载到我的电脑,你知道解决方案吗?
  • 是否有任何类型的 DRM 阻止您仅使用 http/https 库?

标签: javascript node.js puppeteer


【解决方案1】:

我创建了一个函数,它给定一个以索引为参数的函数,返回要下载的 pdf 的 url 和一个限制下载的计数,它会尝试下载 pdf。

const puppeteer = require('puppeteer');


downloadFiles((i) => `example.com/Contents/xxx-${i}.pdf`, 20);

async function downloadFiles(url, count) {
    const browser = await puppeteer.launch({
        headless: false,
        args: ['--no-sandbox', '--disable-setuid-sandbox']
    });
    const page = await browser.newPage();
    for (let i = 0; i < count; i++) {
        const pageUrl = await url(i);
        try {
            await page.goto(pageUrl);
            await page.pdf({
                path: `pdf-${i}.pdf`,
                format: 'A4',
                printBackground: true
            });
        } catch (e) {
            console.log(`Error loading ${pageUrl}`);
        }
    }
    await browser.close();
}

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多