puppeteer - 如何设置下载位置
puppeteer - how to set download location
我能够使用 puppeteer 成功下载文件,但它只是将其保存到我的 /Downloads 文件夹中。我环顾四周,在 api 或论坛中找不到任何设置此位置的内容。
我的下载基本都是去link:
await page.goto(url);
在最新的 puppeteer v0.13 中,您可以这样设置下载路径。
await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './myAwesomeDownloadFolder'});
该行为是实验性的,以后可能会被删除、修改或更改。
Pst,您可以尝试列出的更多技巧 here,风险自负:)。
我知道这是一个旧线程,但是当我寻找如何设置 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,因为如果第一次创建UserDirDirectory不存在Chrome 已启动。
然后所有配置文件相关数据都存储在 customChrome/Default 文件夹中。
我能够使用 puppeteer 成功下载文件,但它只是将其保存到我的 /Downloads 文件夹中。我环顾四周,在 api 或论坛中找不到任何设置此位置的内容。
我的下载基本都是去link:
await page.goto(url);
在最新的 puppeteer v0.13 中,您可以这样设置下载路径。
await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './myAwesomeDownloadFolder'});
该行为是实验性的,以后可能会被删除、修改或更改。
Pst,您可以尝试列出的更多技巧 here,风险自负:)。
我知道这是一个旧线程,但是当我寻找如何设置 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,因为如果第一次创建UserDirDirectory不存在Chrome 已启动。
然后所有配置文件相关数据都存储在 customChrome/Default 文件夹中。