版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41033913/article/details/85256481
node.js爬去教务管理系统(发送请求)
—前端学习进程
首先得查看需要获取页面的请求头,然后根据请求头去去读内容(以我们学校为例)
因为是要获取页面里面的内容,是得登入才能看到的,页面里面有许多文件,需要找到自己需要获取页面的那个请求。
找到所需要的请求之后,就去看请求头需要一些什么东西
var option={
hostname:'',//网页的总的地址
path:'',//所需要爬取网页连接在后面的
//也可直接写一个('Request url':'',)
method:'GET',
headers:{
'Accept':'image/webp,image/apng,image/*,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate',
'Cache-Control':'no-cache',
'Connection':'keep-alive',
'Accept-Charset': 'GB2312,utf-8;q=0.7,*;q=0.7',
'Cookie':'',
'Host':'',
'Referer':'',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}
};
headers里面的内容就是Request Headers里面的
然后需要发送请求,需要用到http
var html=[];
var len = 0;
var req=http.request(option,function(res){
res.on('data',function(data){
html.push(data);// data里面的数据就是网页的内容
len += data.length;
});
res.on('end',function(){
var dataAll = Buffer.concat(html,len);
var strJson = iconv.decode(dataAll,'gb2312');
//解决乱码问题
var the_course = filterCourse(strJson);//解析网页(函数)
})
});
req.on('error',function(e){
console.log('Error:'+e.message)
});
req.end();
总体来说,这个请求的逻辑很简单,就是发送一个请求,只是这个请求带有一个“通行证”(cookie),只要带有这个东西,才能看到其他人看不到的内容,即其他学校的人就不可以访问我们的教务系统,需要知道发送什么信息,就得看我登入的时候,发送了什么信息。