所以我想将links
数组中的所有内容追加到文本文件中:links.txt
。问题是它将循环所经历的迭代次数追加到所有时间。我已经尝试将fs.appendFileSync
放在外面,但我需要它来追求请求。
以下是代码:
for (i = 1; i < 3; i++) {
var options = {
uri: 'https://www.collegeconfidential.com/dean/page/' + i,
transform: function(body) {
return cheerio.load(body);
}
};
rp(options).then(function($) {
$('main#main > article.post').each(function() {
// Fetches each question title, link, and adds a new line
var maintxt = $(this).find('h3.entry-title > a');
console.log("Question: " + maintxt.text().trim() + '\n' + "Link: " + maintxt.attr('href') + '\n\n');
questions.push(maintxt.text().trim());
links.push(maintxt.attr("href"));
});
// console.log(questions);
// console.log(links);
}).then(function ($) {
fs.appendFileSync('links.txt', links);
console.log(links);
}).catch(function(err) {
// Crawling failed or Cheerio choked...
console.log('Crawling failed or Cheerio choked')
});
}
答案 0 :(得分:0)
虽然这个循环并不理想......如果你不想修改数组,你可以在数组中附加最后添加的链接。
替换:
fs.appendFileSync('links.txt', links);
使用:
fs.appendFileSync('links.txt', links[links.length-1]+'\n');