私はこれをstackoverflow / google全体で検索しましたが、理解できないようです。
特定のURLページのソーシャルメディアリンクをスクレイピングしていますが、この関数はURLのリストを含むオブジェクトを返します。
私は別のファイルにこのデータを書き込もうとすると、それは、ファイルへの出力[object Object]
の代わりに期待されるの:[「https://twitter.com/#!/101Cookbooks」、 ' http://www.facebook.com/ 101cookbooks ']私console.log()
が結果を出したときと同じように。
これは、Nodeでファイルを読み書きし、各行(URL)を読み取って、関数呼び出しを介して入力しようとする私の悲しい試みですrequest(line, gotHTML)
。
fs.readFileSync('./urls.txt').toString().split('\n').forEach(function (line){
console.log(line);
var obj = request(line, gotHTML);
console.log(obj);
fs.writeFileSync('./data.json', obj , 'utf-8');
});
参考のために-gotHTML
関数:
function gotHTML(err, resp, html){
var social_ids = [];
if(err){
return console.log(err);
} else if (resp.statusCode === 200){
var parsedHTML = $.load(html);
parsedHTML('a').map(function(i, link){
var href = $(link).attr('href');
for(var i=0; i<socialurls.length; i++){
if(socialurls[i].test(href) && social_ids.indexOf(href) < 0 ) {
social_ids.push(href);
};
};
})
};
return social_ids;
};
[object Object]
オブジェクトtoString
です。オブジェクトの表現が必要な場合は、を使用しますJSON.stringify
。