不知道你要哪部分数据
下面代码是能拿到儿科护理学的网页源码,不过好像也都是做防护了const http=require("http");
const querystr=require("querystring");
//探索医学继续教育网学科部分(没有HREF,是用post请求参数方式)
//构造参数
var xueke="儿科护理学";
var post_data=querystr.stringify({
"search_input":"",
"xueke":xueke,
"brand":"",
"mode":"",
"pid":xueke,
"sign":"",
"level_h":"-1",
"forma":"",
"score_sort":"",
"cost_sort":""
});
var contentLen = Buffer.byteLength(post_data, 'utf8');
// 构建options
var options={
hostname:"www.ncme.org.cn",
port:80,
path:"/ProjectList.do",
method:"POST",
headers: {'Content-Type': 'application/x-www-form-urlencoded','Content-Length': contentLen}
};
req=http.request(options,
res=>{
var strs=[];
res.on('data', buffer => {//请求到的数据都在这里了
strs.push(buffer);
});
res.on('end', () => { //end 请求完成,对数据进行处理的过程
let buff = Buffer.concat(strs); //对请求回来的数据进行Buffer封装,这里的结果是二进制
let iconv = require('iconv-lite'); // 转码模块。。。nodejs安装模块npm install ...
html=iconv.decode(buff,"utf8"); // 转码,把二进制转成我们能读懂的string
console.log(html);
});
//这里好像还应该有个res.on("error"()=>{});
});
req.write(post_data);//发送内容
req.end(); //结束请求,必须,否则会一直请求
|