websect爬取自己csdn的所有博客

websect
  • 今天就来爬去一下自己的csdn里边所有的博客2333
  • 首先下载 websect

npm i websect
在这里插入图片描述

  • 首先来分析数据的格式,基本如下:
    在这里插入图片描述
  • 文章的地址href,是不是原创type,标题title,内容简介content,发表时间date,和阅读数read_num,基本上就这6个数据
const $ = require("websect")
$.get("https://blog.csdn.net/qq_41672008").then(data=>{
    var old = Date.now()
    var arrs = []
    $(data).find("div.article-item-box.csdn-tracking-statistics").each(el=>{
        var href = $(el).find("h4 a").attr("href")
        var type = $(el).find("h4 a span").text()
        var title = $(el).find("h4 a").info()
        var content = $(el).find("p.content a").text()
        var date = $(el).find("p span.date").text().trim()
        var read_num = $(el).find("p span.num").text()
        arrs.push({href,type,title,content,date,read_num})
    })
    console.log(arrs)
    console.log(Date.now() - old)
})
  • 爬取结果如下:
[
  {
    href: 'https://blog.csdn.net/qq_41672008/article/details/103230917',
    type: '原创',
    title: 'websect爬取小米官网数据',
    content: '\n' +
      '        websect\n' +
      '\n' +
      '首先下载websect\n' +
      '\n' +
      '\n' +
      'npm I websect\n' +
      '\n' +
      '\n' +
      '还是老规矩,爬取小米官网的数据QAQ,不过这一个不一样,要爬取的是这个:\n' +
      '\n' +
      '\n' +
      '\n' +
      '现在使用 websect 进行数据的爬取:\n' +
      '\n' +
      'const $ = require("websect")\n' +
      '\n' +
      '$.get(&...      ',
    date: '2019-11-24 23:40:03',
    read_num: '2'
  },
  // ******************** 中间省略了很多数据 ********************
  {
    href: 'https://blog.csdn.net/qq_41672008/article/details/102464327',
    type: '原创',
    title: 'css绝对定位的参照物',
    content: '\n' +
      '        css绝对定位的重新认知\n' +
      '\n' +
      '所谓的css绝对定位,就是 position:absolute;\n' +
      '这里记录一个我的错误认知,就是 绝对定位的参照物是 内容,还是 内容+内边距,我一直以为 参照物就是内容,但是实际上参照物是 内容+内边距\n' +
      '看看下面的事例\n' +
      '\n' +
      '<!DOCTYPE html&a...      ',
    date: '2019-10-09 16:43:58',
    read_num: '17'
  }
]
28 // 这是爬取数据和打印数据总共用时 28ms
  • 如果不打印数据:
sataniyadeMBP:ajax sataniya$ node op
11
sataniyadeMBP:ajax sataniya$ node op
10
sataniyadeMBP:ajax sataniya$ node op
11
sataniyadeMBP:ajax sataniya$ node op
10
sataniyadeMBP:ajax sataniya$ node op
10
sataniyadeMBP:ajax sataniya$ node op
11
sataniyadeMBP:ajax sataniya$ node op
10 // 可以看见 websect 爬取数据用时为 10ms
sataniyadeMBP:ajax sataniya$ 
  • 可以看见 websect 爬取数据用时为 10ms,这是很惊人的速度
  • 接下来,轮到 cheerio 进行爬取:
const ajax = require("websect")
const cheerio = require("cheerio")
ajax.get("https://blog.csdn.net/qq_41672008").then(data=>{
    var old = Date.now()
    var arrs = []
    var $ = cheerio.load(data)
    $("div.article-item-box.csdn-tracking-statistics").each((index,el)=>{
        var href = $(el).find("h4 a").attr("href")
        var type = $(el).find("h4 a span").text()
        var title = $(el).find("h4 a").text()
        var content = $(el).find("p.content a").text()
        var date = $(el).find("p span.date").text().trim()
        var read_num = $(el).find("p span.num").text()
        arrs.push({href,type,title,content,date,read_num})
    })
    console.log(arrs)
    console.log(Date.now() - old)
})
[
  {
    href: 'https://blog.csdn.net/qq_41672008/article/details/103230917',
    type: '原创',
    title: '\n        原创        websect爬取小米官网数据      ',
    content: '\n' +
      '        websect\n' +
      '\n' +
      '首先下载websect\n' +
      '\n' +
      '\n' +
      'npm I websect\n' +
      '\n' +
      '\n' +
      '还是老规矩,爬取小米官网的数据QAQ,不过这一个不一样,要爬取的是这个:\n' +
      '\n' +
      '\n' +
      '\n' +
      '现在使用 websect 进行数据的爬取:\n' +
      '\n' +
      'const $ = require("websect")\n' +
      '\n' +
      '$.get(&...      ',
    date: '2019-11-24 23:40:03',
    read_num: '20'
  },
 // ******************** 中间省略了很多数据 ********************
 {
    href: 'https://blog.csdn.net/qq_41672008/article/details/102464327',
    type: '原创',
    title: '\n        原创        css绝对定位的参照物      ',
    content: '\n' +
      '        css绝对定位的重新认知\n' +
      '\n' +
      '所谓的css绝对定位,就是 position:absolute;\n' +
      '这里记录一个我的错误认知,就是 绝对定位的参照物是 内容,还是 内容+内边距,我一直以为 参照物就是内容,但是实际上参照物是 内容+内边距\n' +
      '看看下面的事例\n' +
      '\n' +
      '<!DOCTYPE html&a...      ',
    date: '2019-10-09 16:43:58',
    read_num: '170'
  }
]
75 // 这是爬取数据和打印数据总共用时 75ms
  • 不打印数据的情况下:
sataniyadeMBP:ajax sataniya$ node op
66
sataniyadeMBP:ajax sataniya$ node op
66
sataniyadeMBP:ajax sataniya$ node op
66
sataniyadeMBP:ajax sataniya$ node op
77
sataniyadeMBP:ajax sataniya$ node op
68
sataniyadeMBP:ajax sataniya$ node op
67
sataniyadeMBP:ajax sataniya$ node op
66
sataniyadeMBP:ajax sataniya$ node op
68 // 可以看见 websect 爬取数据用时为 66ms
sataniyadeMBP:ajax sataniya$ 
  • 爬取相同的数据,websect用时10ms,而 cheerio用时66ms,KO!!!
  • 欢迎大家多多使用 websect并提出宝贵意见!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值