2016-07-04 42 views
-1

我寫了一個使用nodejs的爬蟲,抓住100000網站的關鍵詞,並將結果寫入TXT文件中。但是當第二次爬到100個網站並寫入文件,不能寫入文件,程序不起作用。可能會寫得太快。怎麼解決?使用nodejs短時間寫入大量數據無法正常工作

對不起我的英語很差!

+0

能你提供一個例子嗎? –

+0

等一下!!! – stone

+0

''' var input = fs.createReadStream(__ dirname +'/10000000website.txt'); var writable = fs.createWriteStream(__ dirname +'/write.txt'); var sitelist = []; //在陣列讀站點列表推 的setInterval(函數(){ \t變種鏈路= sitelist.pop(); \t使用getURL(聯繫); },10) 功能的WriteLine(數據){ \t writable.write(data,'utf8'); } 功能的getURL(鏈接){ \t http.get(的 'http://' +鏈路,功能(RES){ \t \t的WriteLine(RES)//從RES找出關鍵字和運行writLine \t}) } \t ''' – stone

回答

0
'use strict'; 
let fs = require('fs'); 
let http = require('http'); 
var writable = fs.createWriteStream(__dirname + '/write.txt'); 
var sitelist = ['engineeringcircle.com/']; 
let count = 0; 
setInterval(function() { 
    doReq(); 
} 
    , 10); 
function doReq() { 
    http.get('http://' + sitelist[0], function(res) { 
    console.log(count++); 
    let finData = ''; 
    res.setEncoding('utf8'); 
    res.on('data', (data) => { 
     finData += data; 
    }) 
    res.on('end',() => { 
     writable.write(finData); 
    }) 
    }) 
} 

我使用的是同一個網站,如果時間間隔爲10毫秒我不明白的錯誤,提高它,如果你仍然得到錯誤