技术灌水,就是在本地请求网页实现对该网页的评论;首先你需要登录该网站,然后先评论一次,在开发者工具中打开网络面板,找到刚才评论所发送的请求,将里面的headers(请求头)复制下来,我们通过request方法来实现我们的技术灌水。下面我们来看一下代码:
/**
* Nodejs实现技术灌水
* Created by Turne on 2017/2/23.
*/
var http = require('http')
var querystring = require('querystring')
var commentData = querystring.stringify({//灌水的数据
'content':'灌水成功!',
'cid': 348
});
var options = {//request方法的第一个参数
hostname:'www.imooc.com',
port:80,
path:'/course/docomment',
method: 'POST',
headers:{//该请求头是在网页中评论所拿到的数据
'Accept':'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8',
'Connection':'keep-alive',
'Content-Length':commentData.length,
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie':'imooc_uuid=4631c4bf-e10b-4234-8b41-5716a884cd95; imooc_isnew_ct=1472475932; PHPSESSID=nchtrt9' +
'p7q3gjq05voqgv1bur0; loginstate=1; apsid=U5NmQ0ZDdlMzY3Mjk5OTRlZjUzNTM4Y2RiOTIxYjYAAAAAAAAAAAAAAAAAAAAAAA' +
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDc1ODQyMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +
'4OTI2NjkxMzdAcXEuY29tAAAAAAAAAAAAAAAAAAAAADBlMGFjODMzOWM0NzExNTBkNGI4NTJkNzdhOTA3OGY0%2B9GuWPvRrlg%3DMz; ' +
'last_login_username=892669137%40qq.com; imooc_isnew=2; IMCDNS=0; Hm_lvt_f0cfcccd7b1393990c78efdeebff3968=' +
'1487264580,1487302779,1487829693,1487851564; Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1487852057; ' +
'cvde=58aed02924254-60',
'Host':'www.imooc.com',
'Origin':'http://www.imooc.com',
'Referer':'http://www.imooc.com/comment/348',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36',
'X-Requested-With':'XMLHttpRequest'
}
}
var req = http.request(options,function (res) {//request方法的options可以是一个字符串或者一个对象
var datas = '';
console.log('请求的状态码:' + res.statusCode);
console.log('请求的headers:' + JSON.stringify(res.headers));
res.on('data',function (chunk) {//请求过程中会触发data事件
datas += chunk;//数据是Buffer类型的
});
res.on('end',function () {//请求结束时,打印评论成功
console.log('评论成功!');
});
});
req.on('error',function () {//请求过程中出现错误
console.log('评论失败!');
});
req.write(commentData);//将评论写入
req.end();//结束响应