用node.js爬取自己所有博客的名字,评论数,阅读数和发布时间

我们事先要对当前项目初始化,本地安装gulp。
不懂得可以看我上一篇博客

代码如下:

//引入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 操作功能。

  1. 安装模块
    cnpm i cheerio -D

  2. 引入
    const cheerio = require('cheerio')

  3. 装载
    const b = cheerio.load('<h2 class="title">Hello world</h2>')

发布了5 篇原创文章 · 获赞 25 · 访问量 4379

猜你喜欢

转载自blog.csdn.net/weixin_45991188/article/details/105197279