我想加载一个网址并检查页面的所有http和https链接,并将这些链接放入两个不同的文件中。我正在使用javascript,当我尝试写入文件中的所有http网址时,只有最后一个一个是写的,而其他的没有写.Below是代码
var jsdom = require("jsdom");
var request = require('request');
var fs = require("fs");
jsdom.env(
'http://www.google.com', ["http://code.jquery.com/jquery.js"],
function(error, window) {
console.log("There are", window.$('.body').find('img').length, "img");
var $ = window.$;
$($('.body').find('a')).each(function() {
var src = $(this).attr('href');
if (src.startsWith('http://')) {
console.log(src)
fs.writeFile('out.html', src,
function(err) {
if (err) throw error;
})
}
})
});
如何使这段代码写入out.html文件的所有http链接。现在它只写了最后一个链接。
答案 0 :(得分:3)
当我尝试在文件中写入所有http网址时,只写入最后一个,而其他网页没有写入
那是因为您正在使用fs.writeFile
创建新文件或使用您传递给它的内容覆盖现有文件。
您要执行的操作是附加到文件,您可以使用fs.appendFile
执行此操作:
fs.appendFile('out.html', src, function(err) {
if (err) {
throw err;
}
});