如何遍历页面的链接并在java脚本中写入文件中的所有http链接

时间:2016-06-08 17:09:48

标签: javascript node.js

我想加载一个网址并检查页面的所有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链接。现在它只写了最后一个链接。

1 个答案:

答案 0 :(得分:3)

  

当我尝试在文件中写入所有http网址时,只写入最后一个,而其他网页没有写入

那是因为您正在使用fs.writeFile创建新文件或使用您传递给它的内容覆盖现有文件。

您要执行的操作是附加到文件,您可以使用fs.appendFile执行此操作:

fs.appendFile('out.html', src, function(err) {
  if (err) {
    throw err;
  }
});