代码如下:
//引入https和cheerio模块
const https = require('https')
var cheerio = require('cheerio');
//定义自己的博客请求地址
const url = 'https://blog.csdn.net/weixin_45991188'
//调用https.get()去请求
https.get(url,(res) =>{
let raw = ''
//监听res data事件,可能会响应多次
res.on('data',(chunk)=>{
raw += chunk
})
//监听res end事件,响应传输完触发
res.on('end',()=>{
findMenu(raw);
})
})
function findMenu(htmlstr){
const b = cheerio.load(htmlstr)//获取整个页面的html
var result = []//设置一个空数组
//遍历.article-item-box的每个元素,为每个匹配元素规定要运行的函数
b('.article-item-box').each(function(i, item) {
var $h4 = b(item).find('h4').text().trim()//获取到博客标题
var $date = b(item).find('.date').text().trim()//获取博客时间
var $readnum = b(item).find('.read-num').text().trim()//获取博客的阅读数和评论数
result.push($h4)//把的得到的值添加到result这个空数组
result.push(`发布时间: ${$date}`)
result.push($readnum)
})
//最后打印出整个数组
console.log(result)
}
然后我们在终端进入当前文件输入node index.js
效果如下:
cheerio 第三方模块
链接
简单理解为是使用在服务器端的 jquery。保留了 jquery 选择器的相关功能,去掉了 DOM 操作功能。
-
安装模块
cnpm i cheerio -D
-
引入
const cheerio = require('cheerio')
-
装载
const b = cheerio.load('<h2 class="title">Hello world</h2>')