最近需要使用 Nodejs 读取本地文件中的数据构造请求去批量请求 CGI 获取数据,这样就不用手工搬砖了。因为需要携带 Cookie,故使用 POST 方法。
代码
1// 读取本地文件 2var fs = require("fs"); 3var readline = require('readline'); 4 5var rd = readline.createInterface({ 6 input: fs.createReadStream('./test.md'), 7 output: process.stdout, 8 terminal: false 9}); 10 11var http = require("http"); 12var url = require("url"); 13var cookie = "K1:v1" 14 15rd.on('line', function(line) { 16 var parts = line.split(',') 17 keyword = parts[0] 18 newIndex = parts[1] 19 strUrl = "http://wwwtest.com" + keyword + "&start_time=1485241176.43&end_time=1492930776.43&version=0" 20 21 var parse = url.parse(strUrl); 22 // 待发送的数据 23 var postStr = "test"; 24 var options = { 25 "method": "POST", 26 "host": parse.hostname, 27 "path": parse.path, 28 "port": parse.port, 29 "headers": { 30 "Content-Length": postStr.length, 31 'Cookie': cookie 32 } 33 }; 34 35 var req = http.request(options, function(res) { 36 word = parts[0] 37 new_index = parts[1] 38 res.setEncoding("utf-8"); 39 var resData = []; 40 res.on("data", function(chunk) { 41 resData.push(chunk); 42 }).on("end", function() { 43 console.log(resData.join("")); 44 }); 45 }); 46 req.write(postStr); 47 req.end(); 48});