Javascript 从html数据中获取并替换img src值

Javascript 从html数据中获取并替换img src值,javascript,node.js,amazon-web-services,amazon-s3,Javascript,Node.js,Amazon Web Services,Amazon S3,我有一个html文件,它存储在AWSS3中。我已经阅读了带有NodeJS AWS-SDK函数(getObject)的html内容文件,它工作得很好,然后给我一个数据。问题是,如何从html数据中获取“src”url?如何用新的url替换它 这是我的示例代码,我在cmd windows中运行它: var AWS = require('aws-sdk'); AWS.config.loadFromPath('./config.json'); var s3 = new AWS.S3(); var pa

我有一个html文件,它存储在AWSS3中。我已经阅读了带有NodeJS AWS-SDK函数(getObject)的html内容文件,它工作得很好,然后给我一个数据。问题是,如何从html数据中获取“src”url?如何用新的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". 有人知道怎么解决吗?还有别的办法吗?感谢您的帮助

您可能需要为此使用一些解析器

这是我的选择

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() );
  }    
});

希望这会有所帮助。

您可能需要为此使用一些解析器

这是我的选择

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() );
  }    
});

希望有帮助。

谢谢!它起作用了。但还有一个问题,如果我有更多的钱怎么办?如果你有更多的img元素,你必须使用一个父元素来分别选择它们,如果你有权访问你传递的HTML。仅供参考:Cheerio有类似于jQuery的选择器。非常感谢您的帮助。我已经弄明白了,我使用每个(函数(索引,元素))来循环所有img.s!它起作用了。但还有一个问题,如果我有更多的钱怎么办?如果你有更多的img元素,你必须使用一个父元素来分别选择它们,如果你有权访问你传递的HTML。仅供参考:Cheerio有类似于jQuery的选择器。非常感谢您的帮助。我已经弄明白了,我使用每个(函数(索引,元素))来循环所有img。