node.js爬去教务管理系统(发送请求)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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),只要带有这个东西,才能看到其他人看不到的内容,即其他学校的人就不可以访问我们的教务系统,需要知道发送什么信息,就得看我登入的时候,发送了什么信息。

猜你喜欢

转载自blog.csdn.net/qq_41033913/article/details/85256481
今日推荐