javascript - 从 html 数据获取并替换 img src 值

标签 javascript node.js amazon-web-services amazon-s3

我有 html 文件,它存储在 AWS S3 中。我已经使用 NodeJS AWS-SDK 函数(getObject)阅读了该 html 内容文件,它工作得很好,然后给我一个数据。问题是,如何从该 html 数据中获取“src”url?以及如何用新的网址替换它?

这是我的示例代码,我在 cmd windows 中运行它:

var AWS = require('aws-sdk');

AWS.config.loadFromPath('./config.json');
var s3 = new AWS.S3();
var params = {Bucket: 'myStoreName/content', Key: 'index.html'};

s3.getObject(params, function(err, data) {
  if (err) {
    console.log(err, err.stack);
  }
  else {
    var html = data.Body.toString();
    console.log(html);
  }    
});

上面代码的结果是:

<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>This is sample of test</p>
        <img src="./myimage.jpg" />
    </body>
</html>

我只想将 src url 替换为 src="cid:unique@kreata.ee"。有谁知道如何解决吗?还有其他办法吗?谢谢您的帮助

最佳答案

您可能想为此使用一些解析器。

Cheerio是我的选择。

var AWS = require('aws-sdk');
var cheerio = require('cheerio');

AWS.config.loadFromPath('./config.json');
var s3 = new AWS.S3();
var params = {Bucket: 'myStoreName/content', Key: 'index.html'};

s3.getObject(params, function(err, data) {
  if (err) {
    console.log(err, err.stack);
  }
  else {
    var $ = cheerio.load( data.Body.toString() );
    $('body').find('img').attr('src', 'SRC_VALUE_TO_SET');
        console.log( $.html() );
  }    
});

希望有帮助。

关于javascript - 从 html 数据获取并替换 img src 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39363746/

相关文章:

javascript - 使用 NodeJS 在 RingCentral 中处理 TIFF 附件

javascript - 在 C# 中定义混合类型的数组

javascript - 如何使用 ExpressJS 检查主机?

batch-file - 我们可以从 RDS 实例运行 sqlcmd 吗?

javascript - AWS CloudFront 中的单页应用程序

javascript - 语法错误: Unexpected Token '<' <DOCTYPE html>

node.js - 使用 express-session 和 passportjs 未从存储中正确获取 session

node.js - 如何在全局范围内的nodejs中定义const?

javascript - node.js 回调奇怪的行为

javascript - AWS API 网关方法测试 : Error Authorization not configured