如果没有协议方案,puppeteer 不会渲染带有图像 URL 的页面

2023-12-31

我正在尝试使用 puppeteer 呈现 html 电子邮件消息,其中包含来自 url 的图像,而这些 URL 并不总是包含协议方案。例如:<img src="example.com/someimage.jpg" /a>,src确实应该是https://example.com/someimage.jpg or http://....

我很清楚该网址should包含协议方案,但我无法控制电子邮件消息正文中收到的 html。许多邮件客户端(例如 gmail)可以很好地呈现此类电子邮件。我想在木偶师中模仿这种行为。

Puppeteer 中是否有某种方法可以捕获错误,然后:

  1. 尝试在 href 前面加上 https:// ,但失败了
  2. 尝试在 href 前面加上 http:// ,但失败了
  3. 然后显示损坏的图像?

这就是我渲染 html 的方法:

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setJavaScriptEnabled(false);
await page.setContent(htmlEmailBody);
const content = await page.$("body");
const imageBuffer = await page.screenshot({type: "jpeg", omitBackground: true, fullPage: true});

当所有 url 都有一个方案时,这种方法效果很好。当某些 URL 并不总是包含该方案时,使其正常工作的正确方法是什么?

这个问题与puppeteer 不会打开没有协议的 url https://stackoverflow.com/questions/52090433/puppeteer-doesnt-open-a-url-without-protocol但不幸的是它没有回答我的问题。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果没有协议方案,puppeteer 不会渲染带有图像 URL 的页面 的相关文章

随机推荐

  • 如何使用 WinForms (.NET) 绘制圆角矩形?

    使用C 绘制矩形 我需要首先在每个边缘绘制圆弧 然后我需要单击按钮它将在边缘绘制圆弧 我该怎么做 C 中的图形类没有用于绘制圆角矩形的内置方法 但是有多种方法可以实现此效果 答案中的链接杰伊 里格斯 https stackoverflow
  • FieldUndefined 类型的验证错误:“Query”类型中的“register”字段未定义

    我是 GrapQL 的新手 我正在尝试将它与 Spring Boot 一起使用 我可以成功进行查询 它正在返回我需要的数据 但我现在想使用突变 当他注册时 我需要向数据库添加一个用途 这是我的 schema graphqls 文件 type
  • 具有多个应用程序的 django 静态文件

    假设我有两个应用程序 富和酒吧 项目结构如下 如何确保应用程序样式不冲突 运行manage pycollectstatic当前会解散其中一个文件 管理应用程序被导入到 admin 文件夹中的收集目录中 但是我的应用程序静态数据被直接导入到主
  • Asp.net向url字符串添加参数

    我正在页面中显示已过滤项目的列表 现在我必须通过对结果分页来限制显示 所以如果我有这样的 url 参数 example com category pizza period today 其中类别和期间也可以不显示 example com pe
  • 如何在 shell 脚本中使用 ftp 删除 3 天前的文件 (Solaris OS)

    我正在编写一个脚本来创建文件 基本上是一些表的副本 并将这些文件通过 ftp 传输到远程计算机 在转储这些文件之前 还需要删除远程计算机上 3 天的旧文件 我需要帮助编写 ksh 以使用 ftp 删除远程计算机上 3 天前的文件 通常 您会
  • 应用程序部署到 Windows Phone 7 应用程序而不是 xbox live

    当我将游戏 使用 XNA C 从 Visual Studio 部署到 Windows Phone 7 设备时 它会转到应用程序区域而不是 xbox live 子目录 如果我可以这样称呼它 我知道这并不是这样的 因为示例 XNA WP7 应用
  • 如何在本机反应中同步两个 flatList 滚动位置

    正如您在上图中看到的 有一个两列的垂直列表 我开发了两个 flatList 因为我无法使用 flatList 列选项在一行上设置不同高度的照片样式 我希望两个 flatList 具有相同的滚动位置 我包装了两个 FlatList 组件来同步
  • 在 C++ 中复制到剪贴板? [复制]

    这个问题在这里已经有答案了 我想将一些字符串复制到我的 C 应用程序中的剪贴板 我怎样才能做到这一点 另外 是否也可以复制格式 谢谢 您在评论中说过您使用 Qt Qt 有类QC剪贴板 https doc qt io qt 6 qclipbo
  • 计算具有不均匀间隔样本位置的 3D 梯度的函数

    我在一卷中进行了实验观察 import numpy as np observations are not uniformly spaced x np random normal 0 1 10 y np random normal 5 2 1
  • 如何在 Xcode 中全屏显示?

    有没有办法在 Xcode 中全屏显示 与 VS net 类似 如果有的话 怎么办 FWIW 这个老问题的现代答案分为两部分 1 使用View gt Fullscreen进入全屏 并且 这样你就不会最终每个文件都有一个全屏窗口 这将是荒谬的
  • jquery“包含”代码在 chrome 上不起作用

    我使用此代码来检查网站上的语言 然后将其从下拉菜单中删除 该代码可以在 Firefox 中运行 但无法在 Chrome 上运行 并且还会停止所有其他脚本 这是代码 var mylangme location attr href if myl
  • 如何访问 Ramda.map 中的迭代索引

    我曾经写过类似的东西 map items item index gt 与洛达什 通常我不需要index但有时它是有用的 我现在要迁移到 Ramda R map item index gt items index is undefined 当
  • 使用指针相乘矩阵

    大家好 我正在尝试练习 C 中的学习指针 所以我试图将这些数组相乘 并在结果矩阵中得到全 0 如果有人可以提示我看什么或者对造成这种情况的原因提出一些建议 那就太棒了 这是代码 include
  • 除了泛型类之外,还有其他方法可以在不装箱的情况下调用结构体的接口方法吗?

    请参阅代码片段 public interface I0 void f0 public struct S0 I0 void I0 f0 public class A
  • 重写可变对象的 GetHashCode?

    我读过大约 10 个关于何时以及如何覆盖的不同问题GetHashCode但还有一些事情我不太明白 大多数实现GetHashCode基于对象字段的哈希码 但有人引用了GetHashCode在对象的生命周期中永远不应该改变 如果它所基于的字段是
  • 如何检查用户是否共享网站(Facebook)?是否可以?

    我目前正在编写一个网站 我需要一些有关 Facebook 集成的帮助 我需要一个函数 PHP 或 JS 两者都会有帮助 来检查给定用户是否共享我的网站 我不知道如何写一个 你能指出我正确的方向吗 首先 您必须在标签之后加载 Facebook
  • CouchDB 中是否可以访问旧数据?

    我读过一些有关 CouchDB 的内容 并且对它的 仅附加 这一事实非常感兴趣 我可能会误解这一点 但据我了解 它的工作原理有点像这样 数据按时添加t0向数据库告知 ID 为 1 的用户名为 Cedrik Martin 询问 ID 1 的用
  • 单个 SqlCommand 中的多个语句

    我有一组 sql 脚本 我使用 C 中的 SqlCommand 对象将其发送到 SQL Server 这些脚本创建存储过程 只要我创建这些过程 一切都会正常工作 如果我的脚本包含通常的 如果存在 drop XYZ create proced
  • Angular 4/5/6 全局变量

    我真的很难在 Angular 2 应用程序中创建全局变量 所以我的文件名为全局变量 ts 看起来像这样 import Injectable from angular core Injectable export class Globals
  • 如果没有协议方案,puppeteer 不会渲染带有图像 URL 的页面

    我正在尝试使用 puppeteer 呈现 html 电子邮件消息 其中包含来自 url 的图像 而这些 URL 并不总是包含协议方案 例如 img src example com someimage jpg a gt src确实应该是htt