首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用puppeteer库和fetch直接从url和insert获取pdf blob到驱动器

是一种通过编程方式从指定的URL获取PDF文件,并将其保存到本地驱动器的方法。

Puppeteer是一个基于Node.js的开源库,它提供了一个高级的API,用于控制和操作一个真实的Chrome或Chromium浏览器实例。它可以模拟用户在浏览器中的操作,例如导航到指定的URL、填写表单、点击按钮等。

Fetch是一个用于发送HTTP请求的Web API,它提供了一种简洁的方式来获取网络资源。它支持异步操作,并且可以方便地处理响应数据。

以下是使用puppeteer库和fetch从URL获取PDF文件并保存到本地驱动器的示例代码:

代码语言:txt
复制
const puppeteer = require('puppeteer');
const fetch = require('node-fetch');
const fs = require('fs');

async function getPdfFromUrlAndSave(url, filePath) {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(url, { waitUntil: 'networkidle0' });

  const pdfBlob = await page.pdf({ format: 'A4' });

  await browser.close();

  fs.writeFileSync(filePath, pdfBlob);
}

const url = 'https://example.com/sample.pdf';
const filePath = 'path/to/save/sample.pdf';

getPdfFromUrlAndSave(url, filePath)
  .then(() => {
    console.log('PDF saved successfully.');
  })
  .catch((error) => {
    console.error('Error saving PDF:', error);
  });

在上述代码中,我们首先导入了必要的库,包括puppeteer、fetch和fs(用于文件操作)。然后,我们定义了一个名为getPdfFromUrlAndSave的异步函数,它接受一个URL和保存PDF文件的文件路径作为参数。

在函数内部,我们使用puppeteer.launch()方法启动一个浏览器实例,并创建一个新的页面。然后,我们使用page.goto()方法导航到指定的URL,并等待页面加载完成。

接下来,我们使用page.pdf()方法生成PDF文件的Blob对象。我们可以通过传递一些选项来自定义生成的PDF文件,例如指定页面大小、边距等。

最后,我们使用browser.close()方法关闭浏览器实例,并使用fs.writeFileSync()方法将PDF Blob写入指定的文件路径。

你可以将上述代码中的urlfilePath替换为你想要获取PDF的URL和保存PDF的文件路径。执行代码后,你将在指定的文件路径下找到保存的PDF文件。

这种方法适用于需要通过编程方式从指定URL获取PDF文件并保存到本地驱动器的场景,例如自动化报告生成、爬虫应用等。

腾讯云提供了一系列与云计算相关的产品和服务,包括云服务器、云数据库、云存储等。你可以根据具体需求选择适合的产品和服务来支持你的应用开发和部署。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于腾讯云的信息和产品介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

利用puppeteer 采集豆瓣音频代码示例

今天要给大家分享的采集代码,主要是使用 puppeteer 进行编写的,用于采集豆瓣网相关音频。这段代码也是非常地简单实用,一起来看看吧。...```javascript// 引入 puppeteer const puppeteer = require('puppeteer');// 定义获取代理服务器的函数function getProxy...// 这里需要根据实际情况获取音频链接,例如通过查找音频播放器的 DOM 元素并获取其 src 属性 const audioUrl = 'your_audio_url'; // 使用 JavaScript...'; await downloadAudio(audioUrl, proxy);}main();```在这个程序中,我们首先引入了 puppeteer ,并定义了 getProxy 函数来获取服务器...最后,我们编写了 main 函数,用于调用 getProxy downloadAudio 函数。不过在实际使用过程中,示例程序中的 `your_audio_url` 需要替换为实际的音频链接。

20420

用Node.js把HTML转成PDF格式

、headless Chrome Docker 样式复杂的 React 页面生成 PDF 文档。...方案1: DOM 制作屏幕截图 方案2:仅使用 PDF 最终方案3:Node.js、Puppeteer Headless Chrome 样式控制 将文件发送到客户端并保存 在 Docker...他们的问题是,如果我想使用这些,我将不得不重新调整页面结构。这肯定会损害可维护性,因为我需要将所有后续更改应用到 PDF 模板 React 页面中。 请看下面的代码。...首先,我们启动浏览器(仅在 headless 模式下支持 PDF 生成),然后打开新页面,设置视口,并导航提供的URL。...设置 waitUntil:'networkidle0' 选项意味着当至少500毫秒没有网络连接时,Puppeteer 会认为导航已完成。 (可以 API docs 获取更多信息。)

6.5K30
  • Puppeteer 初探

    Puppeteer是一个Node,它提供了一个高级API来通过DevTools协议控制无头 Chrome或Chromium ,它也可以配置为使用完整(非无头)Chrome或Chromium。...NodeJS API Puppeteer直接让 PhantomJS Selenium IDE for Firefox 作者宣布暂停继续维护其产品,PhantomJs的开发者更直接宣称自己要失业了...Puppeteer能做什么? 你可以在浏览器中手动完成的大部分事情都可以使用Puppteer完成 比如: 生成页面的屏幕截图PDF。 抓取SPA并生成预先呈现的内容(即“SSR”)。...使用最新的的JavaScript浏览器功能,直接在最新版本的Chrome浏览器中运行测试。 捕获您网站的时间线跟踪,以帮助诊断性能问题。...await page.goto(url, {waitUntil: 'networkidle2'}); await page.pdf({path: path + name + '.pdf', format

    2.7K20

    实践指南-网页生成PDF

    在浏览器中手动执行的大多数操作都可以使用 Puppeteer 完成,比如: 生成页面的屏幕截图 PDF; 爬取 SPA 并生成预渲染的内容(即 SSR); 自动进行表单提交,UI 测试,键盘输入等;...使用最新的 JavaScript 浏览器功能,直接在最新版本的 Chrome 中运行测试; 捕获时间线跟踪网站,以帮助诊断性能问题; 测试 Chrome 扩展程序。...从上可见,Puppeteer 可以实现在Node 端生成页面的 PDF 功能。 三、实现步骤 1. 安装— 进入项目,安装 puppeteer 本地。...Docker 部署 Puppeteer— 根据上文操作,本地已经可以成功将页面生成 PDF 了,本地体验没问题后,需要部署服务端给测试、上线。... v1.18.1 v2.1.0 的版本都依赖于 Node 8.9.0+。 v3.0.0 开始,Puppeteer 开始依赖于 Node 10.18.1+。

    2.4K41

    小程序测试方案初探

    微信小程序发布这段时间,陆陆续续开发了不少小程序相关的项目,总结了一些通用性的组件,但是对于小程序如何做测试,依然是一头雾水,直到做了不少的项目,积累的一些经验开源之后才理清如何做测试,下面将会介绍如何对小程序做...puppeteer可以对页面进行截图保存为图片或者PDF,解决爬虫无法实现的一些操作(异步加载页面内容) 。...chai Chai是一个BDD/TDD模式的断言,在node浏览器环境都能运行,API通俗易懂,断言类型方式丰富,搭配mocha,江湖人戏称为”抹茶“ 配置环境 npm i -g wept...browser.newPage(); //设置展示的设备https://github.com/GoogleChrome/puppeteer/blob/master/DeviceDescriptors.js...本篇文章介绍使用weptpuppeteer来对小程序做E2E测试,对于测试环境正式环境还是有差异的,比如Object.defineProperty小程序是不支持这个API的,但是测试环境是可以跑通的

    8.5K30

    使用Node.js爬取任意网页资源并输出高质量PDF文件本地~

    使用Node.js爬取网页资源,开箱即用的配置 将爬取到的网页内容以PDF格式输出 如果你是一名技术人员,那么可以看我接下来的文章,否则,请直接移步到我的github仓库,直接看文档使用即可 仓库地址...:附带文档源码,别忘了给个star哦 本需求使用到的技术:Node.jspuppeteer puppeteer 官网地址: puppeteer地址 Node.js官网地址:链接描述 Puppeteer...环境安装 Puppeteer本身依赖6.4以上的Node,但是为了异步超级好用的async/await,推荐使用7.6版本以上的Node。...接下来我们直接来爬取Node.js的官网首页然后直接生成PDF 无论您是否了解Node.jspuppeteer的爬虫的人员都可以操作,请您一定万分仔细阅读本文档并按顺序执行每一步 本项目实现需求:给我们一个网页地址...数据在这个时代非常珍贵,按照网页的设计逻辑,选定特定的href的地址,可以先直接获取对应的资源,也可以通过再次使用 page.goto方法进入,再调用 page.evaluate() 处理逻辑,或者输出对应的

    3.2K60

    【工具篇】在.Net中实现HTML生成图片或PDF的几种方式

    Puppeteer是由谷歌开源的一个Node项目,它提供了Chrome DevTools的通信能力,基本上我们能在Chrome实现的操作通过它的API都可以实现,强大让你不敢相信。...生成图片PDF文件例子: const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch...8']);       详细的API文档可以参考:https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md Puppeteer...确实非常强大,但由于它是一个Node包无法直接在C#项目中使用,那怎么办呢?...IronPdf的主要特性包括: 任何类型的HTML文件、代码片段、URL生成PDF PDF编辑 图片与PDF互转 支持HTML5CSS3,支持响应式布局,支持JS脚本,丰富的配置选项 支持C#、

    2.7K30

    Blob

    读完本文你将了解以下内容: Blob 是什么 Blob API 简介 构造函数 属性方法 Blob 使用场景 分片上传 互联网下载数据 Blob 用作 URL Blob 转换为 Base64 图片压缩...(url, { method: "post", body: fd }).then((res) => res.text() ); } } 3.2 互联网下载数据 我们可以使用以下方法互联网上下载数据并将数据存储...null) } 当然除了使用 XMLHttpRequest API 之外,我们也可以使用 fetch API 来实现以流的方式获取二进制数据。...这里我们来看一下如何使用 fetch API 获取线上图片并本地显示,具体实现如下: const myImage = document.querySelector('img'); const myRequest...; }); 当 fetch 请求成功的时候,我们调用 response 对象的 blob() 方法, response 对象中读取一个 Blob 对象,然后使用 createObjectURL()

    6.2K40

    PuppeteerSharp在C#中的应用案例

    ●爬取网页内容:可以获取网页的HTML、截图等信息。●生成PDF文件:可以将网页内容保存为PDF文件。项目需求我们的项目需求是千图网上爬取图片,把这些图片保存为PDF文件。...为了实现这个目标,我们将使用PuppeteerSharp来模拟浏览器行为,网页中获取图片,把这些图片保存为PDF文件。...抓取思路分析1分析页面请求:使用Chrome开发者工具或类似工具分析千图网的页面请求,找到图片数据的来源。2找到数据来源:确定图片数据是通过接口获取还是直接嵌入在页面中。...完整的爬取过程:// 使用 PuppeteerSharp 进行爬取保存为 PDF 的代码示例using PuppeteerSharp;using System;using System.IO;using...提供了生成PDF的功能,我们可以使用它来将获取到的图片保存为PDF文件。

    35810

    你不知道的 Blob

    读完本文你将了解以下内容: Blob 是什么 Blob API 简介 构造函数 属性方法 Blob 使用场景 分片上传 互联网下载数据 Blob 用作 URL Blob 转换为 Base64 图片压缩...(url, { method: "post", body: fd }).then((res) => res.text() ); } } 3.2 互联网下载数据 我们可以使用以下方法互联网上下载数据并将数据存储...) } 当然除了使用 XMLHttpRequest API 之外,我们也可以使用 fetch API 来实现以流的方式获取二进制数据。...; }); 当 fetch 请求成功的时候,我们调用 response 对象的 blob() 方法, response 对象中读取一个 Blob 对象,然后使用 createObjectURL() 方法创建一个...在浏览器端,利用一些现成的开源,比如 jsPDF,我们也可以方便地生成 PDF 文档。 <!

    4.1K20

    【笔记】618- 读《你不知道的 Blob》笔记

    互联网下载数据 在实现“互联网下载数据”方法时,我们使用 createObjectURL 显示图片,在请求互联网图片时,我们有两种方式: 使用 XMLHttpRequest ; 使用 fetch ;...生成 PDF 文档 在浏览器端,利用一些现成的开源,比如 jsPDF,我们也可以方便地生成 PDF 文档。...且不能直接操纵 ArrayBuffer 的内容,需要创建一个类型化数组对象或 DataView 对象,该对象以特定格式表示缓冲区,并使用该对象读取写入缓冲区的内容。...; Blob 可以位于磁盘、高速缓存内存其他不同用位置,而 ArrayBuffer 存在内存中,可以直接操作; 4....1.4 使用场景不同 Blob URL 只能在当前应用内使用,把 Blob URL 复制浏览器地址栏是无法获取数据,而 Data URL 则可以在任意浏览器中使用

    3.3K40

    大前端神器安利之 Puppeteer

    使用 Puppeteer,相当于同时具有 Linux Chrome 双端的操作能力,应用场景可谓非常之多。...Puppeteer 能做些什么 你可以在浏览器中手动完成的大部分事情都可以使用 Puppeteer 完成!你可以以下几个示例开始: 生成页面的截图PDF。...网站抓取你需要的内容。 自动表单提交,UI测试,键盘输入等 创建一个最新的自动化测试环境。使用最新的JavaScript浏览器功能,直接在最新版本的Chrome中运行测试。...步骤详述 [X] 打开技术头条-提交页面,同时 晚晴幽草轩-Front-End 随机抓取一篇文章,获取到标题、地址、描述。...定链接到指定网站 处于某些分享需要,偶尔会涉及这样的需求即:分享指定链接(Url)指定网站;这个相比于如上功能,要省却些步骤。

    2.4K60

    node爬虫入门

    正文 网页资源下载 下载网页内容我们可以使用fetch,或者使用superagent、axios、request等工具,由于后面需要对文件动态解码,所以这里我们选择request工具来完成资源的加载的任务...爬虫加载的网页资源中抓取的相应内容具有一定的局限性,比如使用JavaScript动态渲染的内容、需要用户登录等操作后才能展示的内容等都无法获取到,后文将介绍使用puppeteer工具加载动态资源。...而使用puppeteer我们就不用去关心页面到底请求什么接口,都可以一把梭直接获取到数据。这两种方案都有利弊,看自己想要使用哪种方案了。这里就不展示后面的方法了。...jq对象(工具库内部也使用的cheerio解析html),开发者操作jq获取需要爬取的内容。...但是这个中的api没有使用then-able方案,使用的是callback方案,以及js动态写入的内容无法获取到。

    5.3K20

    关于 Blob

    博客地址:https://ainyi.com/88 对于 Blob,前端开发中可能比较少遇到;数据中可使用 Blob 概念,例如 Mysql 存储二进制数据的类型就是 Blob,也就是说图片可存储于数据中...对象,type 类型设置为 pdf 的 MIME 类型 const blob = new Blob([buf], {type: 'application/pdf'}); // 获取 Blob URL...,可赋值 a 标签 href 属性进行下载 const url = URL.createObjectURL(blob) 通过 Blob 生成文件、利用 Blob URL 获取下载链接,这样就实现后端返回二进制格式的文件进行合并再下载...图片预览 较为简单,获取文件对象后,再通过 createObjectURL 方法得到 Blob URL 最后直接赋值 img 标签的 src 属性即可 <input id="upload" type...形式呢 ==URL.createObjectURL(blob)== 方法来看,首先要拿到存储这个视频原始数据的 Blob 对象 平时我们请求接口可以使用 axios / ajax / xhr 或

    2.7K10

    Puppeteer零出发,全面掌握浏览器自动化神器

    ; 捕获网站的时间线跟踪,帮助诊断性能问题; 测试 Chrome 扩展程序; 对页面截图生成 PDF; 对 SPA 应用爬取并生成预渲染内容; 安装指引 Puppeteer v1.7.0+ 开始同时提供...,例如在首次访问高德地图需要提供 geolocation 权限; 获取创建浏览器上下文 API: // 获取默认的浏览器上下文 await browser.defaultBrowserContext...() await page.goto(url) })() 如何连接到正在运行的浏览器: 除了入门示例是用到的启动浏览器的方式外,还可以使用 connect 直接连接到已启动的浏览器。...PDF 生成: 要打印 PDF 可以使用 page.pdf() 方法,默认情况下这个方法会等待字体文件的加载。...无论是自动填写表单、捕获性能数据,还是生成页面截图PDFPuppeteer 都以其丰富的API强大的控制能力,助力开发者实现自动化需求。

    78511

    搭建以 serverless 为后台服务的疫情热搜快应用

    puppeteer:为什么选择这个呢?首先当然是为了爬取数据,那么有的小朋友就要说了,爬取数据还有其他的呀?为什么非要用他呢?...(当然我肯定不会说是因为国内函数计算提供商现在都有免费的额度可以白嫖的) 最后说说整个项目的架构实现方法 通过 nodejs 加 puppeteer 抓取解析百度疫情热搜数据 把项目部署函数计算服务提供商平台...这里我使用的是cheerio,这个是 Fast, flexible, and lean implementation of core jQuery designed specifically for...the server.结合 puppeteer使用代码如下: const puppeteer = require('puppeteer'); const cheerio = require('cheerio...如果你不熟悉快应用的开发可以先看下快应用官方文档来了解一下,如果你对快应用的开发感兴趣,可以试试apex-ui这个快应用组件,帮你快速开发一个快应用,这里我就不对开发做细节的展示了,直接上页面代码:

    1.1K10

    爬虫使用浏览器渲染的一些最佳实践

    以往比较流行的是 selenium + phantomjs 的组合,不过在自从 Google 官方推出了谷歌浏览器的无头模式 puppeteer 这个以后,稳定性和易用度都大幅得到了提升,本文也主要探讨谷歌浏览器...另外 puppeteer 也有第三方的 Python 移植,叫做 pyppeteer,不过这个目前来看不太稳定(个人使用体验)。...另外 pyppeteer 这个使用了 asyncio,如果你的爬虫使用的是普通的同步语法,那么也还是不方便调用 pyppeteer 这个,个人建议还是使用官方的 node 版 puppeteer,如果需要在...比如,你可以像这样获取一个页面并抽取内容: import cheerio from 'cheerio'; import fetch from 'node-fetch'; async function...getPrice(url) { const res = await fetch(url); const html = await res.test(); const $ = cheerio.load

    2.2K10
    领券