2016-09-07 7 views
0

私はhtmlファイルを持っており、AWS S3に保存しています。私はすでにNodeJS AWS-SDK関数(getObject)でhtmlコンテンツファイルを読んでいます。質問は、そのHTMLデータから "src" URLを取得する方法です。それを新しいURLに置き換える方法は?htmlデータからimg src値を取得して置き換えます

この私のサンプルコード、私はCMDウィンドウでそれを実行します。

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 = "CIDするのsrc URLをreplce :[email protected] "誰かがそれを解決する方法を知っていますか?別の方法はありますか?お手数ですがありがとうございます。

+0

http://stackoverflow.com/questions/7977945/html-parser-on-node-js – mplungjan

答えて

1

これにはパーサを使用することをお勧めします。

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

希望します。

+0

thanksss!できます。しかし、もう1つの質問、もし私がもっとを持っていたら?異なるsrcを持つ必要があります。 – angvee

+0

img要素がもっとある場合、渡すHTMLにアクセスできる場合は、親要素を使用して別々に選択する必要があります。 FYI:CheerioにはjQueryに似たセレクタがあります。 –

+0

ご協力いただきありがとうございます。私は把握して、私は各(関数(インデックス、要素))を使用してすべてのimgをループします。 – angvee

関連する問題