如何使用 headless: true 使用 puppeteer 下载文件?

2023-12-28

我一直在运行以下代码来下载csv来自网站的文件http://niftyindices.com/resources/holiday-calendar:

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();

await page.goto('http://niftyindices.com/resources/holiday-calendar');
await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', 
downloadPath: '/tmp'})
await page.click('#exportholidaycalender');
await page.waitFor(5000);
await browser.close();
})();

with headless: false它有效,它将文件下载到/Users/user/Downloads. with headless: true这是行不通的。

我使用 puppeteer 版本在 macOS Sierra (MacBook Pro) 上运行此程序1.1.1拉取 Chromium 版本66.0.3347.0 into .local-chromium/目录和使用npm init and npm i --save puppeteer设置它。

知道出了什么问题吗?

预先感谢您的时间和帮助,


我花了几个小时仔细研究这个线程 https://github.com/GoogleChrome/puppeteer/issues/299昨天在 Stack Overflow 上尝试找出如何让 Puppeteer 通过在经过身份验证的会话中以无头模式单击下载链接来下载 csv 文件。这里接受的答案在我的情况下不起作用,因为下载不会触发targetcreated,而下一个答案,无论出于何种原因,都没有保留经过身份验证的会话。本文 https://oncletom.io/2018/puppeteer-download-file/挽救了这一天。简而言之,fetch。希望这可以帮助其他人。

const res = await this.page.evaluate(() =>
{
    return fetch('https://example.com/path/to/file.csv', {
        method: 'GET',
        credentials: 'include'
    }).then(r => r.text());
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 headless: true 使用 puppeteer 下载文件? 的相关文章

  • Phonegap使用命令行工具添加插件

    我是phonegap的新手 我按照phonegap官方网站中定义的步骤使用命令行工具创建项目 nodejs 我成功创建项目并添加平台 但是 当我尝试添加插件时出现以下错误 命令 cordova plugin add https git wi
  • node.js 安装向导提前结束

    我无法安装 node js 0 8 9 我是通过安装向导完成的 每次安装结束时我都会收到消息 Node js 安装向导提前结束 会是什么呢 谢谢 这可能会对将来的某人有所帮助 我从安装程序中收到类似的消息 发现我可以转到命令提示符并使用命令
  • 打字稿:“找不到模块”且输入有效

    我刚刚使用 typescript 启动了一个新的 Nodejs 项目 我安装了打字 https github com typings typings https github com typings typings 并使用它来安装 Node
  • 如何以非阻塞方式在 Node.js 中搜索数组?

    我有一个数组是 4ff023908ed2842c1265d9e4 4ff0d75c8ed2842c1266099b 我必须找出以下内容是否在该数组内 4ff0d75c8ed2842c1266099b 这是我写的 Array prototyp
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o
  • 为什么此类方法中的“this”未定义?

    我试图搜索似乎整个互联网 但我仍然对我为微服务编写的 JS 类的问题感到烦恼 仍在学习中 因此 我尝试在实例化对象上调用类方法 根据我的知识和我的 我认为是错误的 单元测试 它应该可以工作 好吧 我将从我收到的错误开始 GET api us
  • 为什么changeResourceRecordSets没有被授权访问此资源?

    我正在尝试在 Route 53 中创建一条别名类型的新记录 以告诉 Route 53 起诉 CloudFront 来为该站点提供服务 我正在尝试使用以下代码来执行此操作 let options ChangeBatch Changes Act
  • Node Sequelize - “按原样”插入日期而不转换为 UTC

    我正在尝试运行一个简单的查询 例如 Insert into table somedate values 2018 06 11 23 59 00 但 Sequelize 将其执行为 Insert into table somedate val
  • 在 Google App Engine 上连接 Mongoose

    我已在 Google App Engine 上成功部署了自定义 Node js 应用程序 但是 我在启动应用程序时遇到问题 因为猫鼬在尝试连接时超时 令人沮丧的是 猫鼬在我的本地计算机上以完全相同的参数连接得很好 我的 MongoDb UR
  • “gulp”不被识别为内部或外部命令

    我正在尝试使用Gulp http gulpjs com and Node Js https nodejs org en 流式传输我的生产过程中缩小和连接 CSS JS 文件的过程 这是我所做的 我安装了Node Js https nodej
  • 如何在 Nodejs - mongodb 搜索中对结果进行排序,但是,通过调用动态方法

    我正在 Nodejs 中开发一个 Web 应用程序 通过 mongo 本机连接器连接到 mongodb 在我的一个 js 文件中 我有一个通用方法来调用 find 或 findOne 操作以从 mongodb 集合中检索我需要的任何内容 如
  • 缓存消息discord.js

    我想做一些反应角色 但为此 我必须缓存机器人启动之前发送的消息 我尝试过channel messages fetch 但到目前为止还没有奏效 我当前的代码 client on messageReactionAdd async reactio
  • 错误:grid.mongo.GridStore不是构造函数,使用mongoose、Grid-fs-stream和grid multer存储

    我收到以下提到的错误 基本配置如下 我已经将文件上传到服务器上 我想下载它们但出现这些错误 我向 api files delete fileId 调用了 POST 请求 它应该调用路由并将文件返回给浏览器 而不是使用网格相关模块获取错误 M
  • crypto createHMAC 输出根据 Nodejs 版本而有所不同

    我在升级节点版本时遇到加密模块问题 创建的HMAC取决于节点的版本 您将在下面找到重现该问题的代码片段 如果我将密钥编码为 BASE64 或任何 HMAC 不依赖于 node js 版本 如果我将其编码为二进制 则当我更改 Node js
  • 添加元数据到快速路线

    有什么方法可以将元数据添加到 Express 的路线中吗 例如 app get some route function req res some meta data 我正在寻找一种针对我的节点应用程序的 AOP 方法 因此我想通过身份验证和
  • 在java中加密字符串,在node.js中解密,错误:解密失败

    我正在尝试用 java 加密一个字符串 将其发送到我的 node js 服务器 然后解密 但是 当我尝试执行此操作时 尝试解密时会不断出现错误 Java加密 String privateKey someprivatekey String d
  • 是否可以直接获取 Puppeteer 音频源和/或输入音频到 Puppeteer?

    我想将 WAV 或 MP3 输入到 puppeteer 作为麦克风 但是在无头模式下应用程序被静音 所以我想知道是否有一种方法可以直接将输入输入到浏览器中 我还想知道是否可以在无头状态下从浏览器获取音频源 和 或录制音频并将其放在文件夹中
  • 多次训练brain.js?

    在第一次训练后 如何将新信息 仅新信息 而不是所有信息 因为这会花费太多性能 训练到我的用 Brain js 制作的神经网络 它有点粗糙 但您可以使用以下结构来实现 如果我们加入 2 个训练数据集 旧数据集与新数据集 然后重新训练keepN
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 无论我将其添加到何处,Azure 应用程序服务(节点)CORS 源都无法工作

    Azure CORS 设置似乎根本不起作用 除非我指定 任何和所有请求都将返回 has been blocked by CORS policy Response to preflight request doesn t pass acces

随机推荐

  • Maven 正在选择旧版本的依赖项

    我正在尝试集成 Maven Spring MVC Rest 但我面临着 maven 没有选择 spring web aop beans context core version 4 3 12 dependency 的问题 maven 正在选
  • PyCharm 调试分段错误(信号 11)

    在PyCharm 社区版2016 2 3 中 使用anaconda2 ubuntu 14 04 import matplotlib在调试模式期间导致信号 11 错误 在release模式下执行脚本没有问题 蟒蛇代码 import matpl
  • Valgrind/R 无法工作:“致命错误:无法创建 'R_TempDir'”

    首先 我对这些东西不太熟练 所以我可能会写一些愚蠢的问题 请友善 我有一个调用 C 代码的 R 代码 不幸的是 我的代码有问题 可能是内存未映射 我想使用 valgrind 尝试了解错误所在 几年前我已经使用过它 但现在似乎不起作用 当我午
  • 当 Reveal.js 幻灯片激活时如何触发 GSAP 功能?

    我想在演示文稿中添加一些简单的动画 我使用 GSAP TweenMax 来完成这项工作 我对动画设置没有问题 但是这些动画在演示开始后立即触发 我如何控制它 以便只有当带动画的幻灯片处于活动状态时脚本才会执行 欢迎您提供所有帮助 问候 ED
  • Android 中的 PATCH 动词(OkHttp、Volley、Retrofit...)

    我知道类似的问题已经被问过几次了 但我似乎找不到一个简单问题的解决方案 PATCH verb 因此 我询问任何使用 OkHttp Volley 或 Retrofit 解决 Android 中的 PATCH 问题的人 或者如果您使用不同的方法
  • Localstack 与 MassTransit 未收到消息

    我在使用 LocalStack 测试 MassTransit 时遇到问题 但在 AWS 中使用真正的 SNS SQS 一切正常 因此我怀疑这是 LocalStack 的问题 除非 MassTransit 需要配置 ServiceURL 以外
  • 您可以将 SIP 电话与 Twilio Endpoint 连接吗?如果是这样,怎么办?

    我有一个基于 Linksys Cisco SPA942 电话的 SIP 电话系统 我想将现有的 PBX 排除在外 并使用 Twilio 为我们编写一个自定义 PBX 我熟悉 Twilio 并且过去编写过许多应用程序 但 Twilio 的 S
  • DRF - 发布到 ManyToMany 字段

    在我的 Django 应用程序中 模型 py class Destination models Model name models CharField max length 30 class Ride models Model driver
  • Scala 中的数据压缩

    下面是我尝试实现一个提供压缩 解压缩字符串功能的类 object GZipHelper def deflate txt String Try String try val arrOutputStream new ByteArrayOutpu
  • 如何在ag-grid中获取过滤行?

    我有一个ag Grid https www ag grid com 带过滤选项 如何在ag Grid中获取过滤后的行 而不是选定的行 您可以使用 forEachNodeAfterFilter callback api 方法来实现此目的 Se
  • 垂直打印字符串 - Python3.2

    我正在编写一个脚本 它将作为用户输入的字符串 并垂直打印它 如下所示 input John walked to the store output J w t t s o a o h t h l e o n k r e e d 我已经写了大部
  • 让两条对角线都通过矩阵项 (i,j) 的 Pythonic 方法

    获取矩阵中通过条目的对角线元素列表的Pythonic方法是什么 i j 例如 给定一个矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 和一个条目 比如
  • 在 Angular 7 中导航而不向 URL 添加参数

    我想在 Angular 7 中的两条路线之间导航 并在它们之间发布数据 但我不想在 URL 中显示这些参数 如何以正确的方式去做 此刻我正在努力解决这样的问题 this router navigate my new route data1
  • 多对多关系。在 def __str__ 方法中返回字段

    我有两个模型 AffectedSegment model class AffectedSegment models Model SEGMENTO ESCAPULA Esc pula SEGMENTO HOMBRO Hombro SEGMEN
  • wait 语句必须包含带有 UNTIL 关键字的条件子句

    以下VHDL将用于测试平台 在分析过程中 我在第一个等待语句上不断收到错误 等待语句必须包含带有 UNTIL 关键字的条件子句 我有几个这样编写的工作测试台 我似乎无法找到可能是什么错误 library IEEE USE IEEE std
  • 如何使用 ggplot 创建多面折线图?

    我有一个用以下代码创建的数据框 require reshape2 foo lt data frame abs cbind rnorm 3 rnorm 3 mean 8 rnorm 3 mean 9 rnorm 3 mean 1 qux lt
  • Power BI Desktop 的一个切片器影响多个表

    我正在 Power BI Desktop 中的单个页面上设置多个表 并计划发布到应用程序 我使用 SQL Server 作为数据源来提取三个不同的预先建立的系统视图的输出 每个视图都从同一组原始数据库表中提取 但呈现不同的订单分组 例如 一
  • 在大图像中使用 findCirclesGrid()

    我在 Python 2 7 中使用 OpenCV 3 来校准不同的相机 我使用 findCirclesGrid 函数 它成功找到了4 x 11 圆形图案 http robocraft ru files opencv acircles pat
  • 在没有 Intent 过滤器的另一个包中启动服务

    有没有办法在不使用清单文件中的 Intent Filter 标签的情况下启动另一个包中定义的 Android 服务 由于某种原因 我无法更新包含该服务的应用程序的清单文件 如果您知道确切的包名称和服务名称 您可以用它创建一个 Intent
  • 如何使用 headless: true 使用 puppeteer 下载文件?

    我一直在运行以下代码来下载csv来自网站的文件http niftyindices com resources holiday calendar const puppeteer require puppeteer async gt const