【问题标题】:Puppeteer: How do I download a file using chrome headless browser api?Puppeteer:如何使用 chrome 无头浏览器 api 下载文件?
【发布时间】:2021-04-26 21:51:25
【问题描述】:

使用 Puppeteer,我如何让无头 chrome 浏览器下载文件(或发出额外的 http 请求并保存响应)?

【问题讨论】:

标签: web-scraping google-chrome-headless puppeteer


【解决方案1】:

这是我编写的一个工具,用于下载页面加载时使用的所有资源。

此节点命令行实用程序使用无头浏览器 (Puppeteer) 来呈现网页并下载它可能需要的所有资源。这些资源包括原始的HTML都保存在本地...

https://github.com/stav/wgrep

【讨论】:

    【解决方案2】:

    您可以通过窗口发出一个简单的请求,它应该可以工作。 npm request

    一旦它返回带有响应的承诺,您就可以编写一个快速保存函数,并存储响应。

    似乎 puppeteer 有这个实现。看这里: How to make a request with puppeteer.

    看看这个:

    当页面发出请求时发出。请求对象是只读的。为了拦截和改变请求,请参阅 page.setRequestInterceptionEnabled。

    我希望这会有所帮助。

    Link for setting headers

    【讨论】:

    • 我希望能够只使用节点来自动下载文件。仅在节点中发出常规 http 请求的问题在于,它不会发送由无头浏览器管理的正确会话 cookie。由于它提供了额外的功能,使用完整的无头浏览器可以让任务变得更容易。
    • 您需要的是标题。我刚刚编辑了我的回复,展示了如何添加标题的示例。这样,无论您的浏览器如何,会话都将被存储,并且客户端将收到一个通知,表明浏览器(在标题中定义)正在尝试执行操作。在您的情况下,下载文件。
    • 该机制将让您查看正在发出的请求(并更改它们)。我想触发其他不会发出的请求并将响应保存到磁盘。
    • 只需添加另一个函数作为参数。或验证。 :)
    • 对不起,我不明白。你能举一个具体的例子吗?如何在 chrome 无头浏览器环境或包装器的上下文中发出 http 请求:Pupperteer?
    猜你喜欢
    • 2018-07-02
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2016-04-17
    • 2018-11-15
    • 2019-09-03
    相关资源
    最近更新 更多