【问题标题】:puppeteer - how to set download locationpuppeteer - 如何设置下载位置
【发布时间】:2017-10-27 01:51:22
【问题描述】:

我能够使用 puppeteer 成功下载文件,但它只是将其保存到我的 /Downloads 文件夹中。我一直在环顾四周,在 api 或论坛中找不到任何东西来设置这个位置。

我的下载基本上都是去链接:

await page.goto(url);

【问题讨论】:

  • 目前还没有论据。您是否尝试在用户数据目录中对其进行修改?
  • @AbdullahAlsigar 抱歉,我想修改什么?
  • 我现在不在我的电脑上,不确定到底是什么。很抱歉。
  • @AbdullahAlsigar nw,当你回到你的电脑时,告诉我在哪里,你记得这个问题,哈哈
  • 我在配置文件文件夹中找不到任何东西。另一个建议是在 headless: false 中运行 puppeteer 然后设置您的默认下载文件夹,我认为这应该可以解决问题。

标签: node.js chromium puppeteer


【解决方案1】:

这是在最新的 puppeteer v0.13 中设置下载路径的方法。

await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './myAwesomeDownloadFolder'});

该行为是实验性的,以后可能会被删除、修改或更改。

Pst,您可以尝试here 列出的更多技巧,风险自负:)。

【讨论】:

  • 无法更改下载文件夹。我将此行放在下载操作之前并提供绝对下载路径。我做错了什么?
  • 在某处分享您的代码,可能在 github gist 中。
【解决方案2】:

我意识到这是一个旧线程,但是在寻找如何设置 Puppeteer 默认下载位置时,这个线程首先为我弹出。 我可以使用以下代码设置下载位置,

let customChrome = path.resolve(__dirname, './customChrome')
        let prefs = fs.readFileSync(customChrome+'/Default/Preferences');
        let obj = JSON.parse(prefs);
        obj.savefile.default_directory = path.resolve(__dirname, './downloads');
        obj.download.default_directory = path.resolve(__dirname, './downloads');
        fs.writeFileSync(customChrome+'/Default/Preferences', JSON.stringify(obj));
        const browser = await puppeteer.launch({
            userDataDir:customChrome,
            headless: false,                                                                                                                                                                                                                                                 
            args:['--disable-features=site-per-process','--no-sandbox']
        });

这将在进程开始之前设置文件的默认下载目录。本质上,Puppeteer 每次运行时都会创建一个自定义配置文件,我们可以覆盖该配置文件并定义下载目录。

第一次运行上述代码时,您必须将 fs.readFile 注释掉到 fs.writeFile,因为如果第一次启动 Chrome 时 UserDirDirectory 不存在,则会创建它。

所有配置文件相关数据随后存储在 customChrome/Default 文件夹中。 How to pass userDataDir profile folder to Puppeteer

【讨论】:

    猜你喜欢
    • 2019-12-26
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2012-12-22
    • 2019-08-13
    • 2011-01-04
    相关资源
    最近更新 更多