介绍websect

websect
  • websect是我写的专门用来爬取网页信息数据的工具,里面的API设计和原生的操作dom的API一样,可能你会说,不是已经有cheerio了嘛,不过这个更快,websect的信息爬取速度比cheerio更快,话不多说,直接进入正题:
下载

npm i websect

相关链接

https://www.npmjs.com/package/websect

https://github.com/shataniya/websect

现在进行网页信息的爬取:
  • 以小米官网为例
  • 要爬取一下商品信息:

在这里插入图片描述

var ajax = require("ajax-insect")
var $ = require("websect")
ajax.get("https://www.mi.com").then(data=>{
    var old = Date.now()
    var arrs = []
    $(data).find("a.link.clearfix").each(el=>{
    	// 获取链接地址
        var href = el.href
        // 获取图片地址
        var src = $(el).find("img").attr("src")
        // 获取标题
        var text = $(el).find("span").text()
        if(href && src && text){
            arrs.push({href,src,text})
        }
    })
    // 将数据打印出来,实际上可以不用打印,但是为了直观
    console.log(arrs)
    // 打印出websect爬取这些信息所用时间,单位是ms
    console.log(`websect time is ${Date.now() - old}`)
})
  • 以下是测试结果:

在这里插入图片描述- 实际上最快的时候是19ms,最慢的时候有29ms,和网速有点关系,平均一下,就取25ms,换句话说,这个测试 websect的成绩是 25ms,那么如果不打印出数据呢?
在这里插入图片描述

  • 在不打印数据的情况下,websect 用时 13ms
  • 现在轮到 cheerio:
var ajax = require("ajax-insect")
var cheerio = require("cheerio")
ajax.get("https://www.mi.com").then(data=>{
    var old = Date.now()
    var arrs = []
    var $ = cheerio.load(data)
    $("a.link.clearfix").each((index,el)=>{
        var href = $(el).attr("href")
        var src = $(el).find("img").attr("src")
        var text = $(el).find("span").text()
        if(href && src && text){
            arrs.push({href,src,text})
        }
    })
    console.log(arrs)
    console.log(`cheerio time is ${Date.now() - old}`)
})
  • 以下是测试结果:

在这里插入图片描述

  • 实际上,最快的时候有108ms,最慢的时候有118ms,但是108ms出现的次数相对比较多所以就以 108ms作为cheerio的成绩,那么如果不打印数据呢?

在这里插入图片描述

  • 可以看到,在不打印数据的情况下,最快有93ms,最慢有103ms,取个均值为:98.357ms,就取98ms吧
  • 对比一下,高下立判,在爬取相同数据量的情况下,cheerio用时98mswebsect用时13ms,实际上,随着数据量的增加,websect 的优势会越来越明显
下一篇再详细讲 websect怎么使用23333
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值