如果页面没有发送任何请求,如何使用 puppeteer 下载文件

How to download file with puppeteer if page doesn't send any request

提问人:Farad 提问时间:12/2/2020 最后编辑:Farad 更新时间:12/2/2020 访问量:944

问:

我正在使用 puppeteer 从站点下载文件。我只有一个元素,我单击并下载文件。 我在谷歌上搜索了有关使用 Puppeteer 下载文件的信息,但所有这些都基于 .但它对我不起作用,因为页面不发送任何请求page.on('request', ...)

page.on('request', arg => {
  console.log(arg.url())
})

在终端中,我只有“https://some-site/images/csv.gif”,但只有.gif。这个文件是如何下载的?如果浏览器不执行任何请求,这是否意味着此文件已经在客户端站点上?

enter image description here

浏览器 前端 机器人 Puppeteer 客户端

评论


答:

0赞 Or Assayag 12/2/2020 #1

尝试(替换顶部的变量以满足您的需求):

const puppeteer = require('puppeteer');
const url = 'your.url.com';
const buttonElementId = '#downloadButton';
   
(async () => {
    const browser = await puppeteer.launch({headless: false});
    const page = await browser.newPage();
    await page.goto(url);
    await page.click(buttonElementId);
    await browser.close();
})();

评论

1赞 Farad 12/2/2020
谢谢,我有点了解如何与木偶师合作。我写了一些机器人,可以登录网站并下载文件。但是我总是使用一种方法来处理请求,停止它,使用我的cookie发送请求并将结果保存到某个文件中。但对于这个网站来说,这种方法是行不通的。未发送请求。即使我打开开发工具->网络选项卡并单击“下载”按钮,我也没有看到浏览器向服务器发出的任何请求。文件只是下载到我的电脑。page.on('request'
0赞 Or Assayag 12/2/2020
URL 是下载文件的目标?
1赞 Farad 12/2/2020
不理解你
0赞 Or Assayag 12/2/2020
你能提供网址吗?
0赞 Farad 12/2/2020
我添加了一张图片。无法提供网址,对不起,有私有数据