首先想清楚你到底用什么做。
因为不同的用法有细微的区别。最方便入门的应该是使用request和cheerio。cheerio是nodejs中的jquery。request是更方便的http模块。
爬虫其实就是两步:
第一步从网上把整个html读下来;其实就是req.get()
这一个函数而已,此时的nodejs相当于一个客户端,向服务端的host发出request请求,得到一个回调函数callback,这里是箭头函数的形式,有三个参数error,response和body。body是返回的html文件。
而第一个是传入的url,除了需要爬取的链接的地址外,还可以对http的访问头进行修改。
req.get({
url:"https://www.scut.edu.cn/new/",
json: true,
encoding : 'utf-8',
port: 443,
headers: {
"content-type": "application/json",
"accept": "application/json",
"User-Agent": "SCUT-NIRCourse-TEST",
"Upgrade-Insecure-Requests": "1"
}
}, (err, res, body)=>{
if(!err)
{
// console.log(body);
dohtml(body);
}
else
console.log(err);
})
这里特意和http的区分一下写法。http引入的url在这里可以是完整的url,也可以是host加上path,但是注意host是要访问的主机名,不能算上http或者https的协议名,path则是后面再后面具体的地址。
先忽略promise的用法,直接看https.get的内容,可以看出结构应该也是https.get(url,callback).on();
里面的res.on()
就像onclick一样,是个等待触发的函数,如果满足条件就执行。比如如果是res.on(data)
就是当data的数据流出现时,执行下面的内容。
let uri = {
// url: baseUrl,
host : 'scut.edu.cn',
// path : "new",
json: true,
encoding