用node爬到了表情包,超级简单


theme: fancy

我们有时候看到网上很多好看的表情包图片, 如果一张一张的去下载的话,需要下载很久很久, 这时候我们就需要用到爬虫技术了,node也是可以进行一些简单的爬虫的,像下载图片这种还是轻轻松松的

注意: 切记不要利用改技术去获利哦,针对学习使用, 也不要频繁爬取学习。

主要技术

  • node
  • eggjs
  • cheerio

如果你不知道怎么创建egg项目的话请看这篇文章:前端也可以写后台,node-eggjs

安装cheerio

javascript npm i cheerio

分析

我们在看到自己想要爬取的网站时,切记要打开F12去分析网站。

  • 先去查看Fetch/XHR,看接口是否会返回参数(有些网站数据是公开的,直接转发接口以及携带相关的参数即可)
  • 如果接口数据不是公开的我们就只有通过页面去抓取我们想要的数据了,但是这种比较麻烦一些,也是比价常见的,比较数据公开的很多人也是会加密的

分析以后,我们就可以开始准备写代码了。我这里直接说第二种;因为第一种对大家来说太简单了

代码实现

我们通过Doc查看到展示的页面是哪一个链接以后,我们就可以开始根据相关链接获取到页面了,然后通过cheerio将页面解析出来,并通过相关的代码得到我们想要的数据。

主要是通过cheerio得到标签里面的一些属性,如果你会jquery的话,那你会更加的得心应手。

如下代码:爬取的首页

```javascript async setMall() { const { ctx } = this; const url = 'https://www.**.com/'; const pageIndex = Math.floor(Math.random() * ua.length); if (!url) { return ctx.body = { code:201, data:[], msg:'请输入链接' } }; try { const { data } = await ctx.curl(url,{ method:'GET', headers:{ 'User-Agent':ua[pageIndex], } }); // toString是为了解析出buffer数据 const pageXml = data.toString(); let slideshow = []; // // decodeEntities参数是为了解决cheerio获取的中文乱码 const $ = cheerio.load(pageXml, { decodeEntities: false }); / * type=1:轮播图;2:列表 */ $('.imglist li img').each(function(index) { const img = $(this).attr('src'); if (index <= 5) { slideshow.push({img,type:1}); }else { slideshow.push({img,type:2}); } });

$('.imglist li a').each(function(index) {
        const url = $(this).attr('href');
        slideshow[index].url = url;
    });

    let classify = [];
    $('.widget .tagcloud a').each(function(index) {
        const text = $(this).text();
        const url = $(this).attr('href');
        classify.push({text,url});
    });

    ctx.body = {
        code:200,
        slideshow:slideshow.filter(v=>v.type == 1),
        list:slideshow.filter(o=>o.type == 2),
        classify,
        msg:'成功'
    };
    } catch (error) {
    ctx.body = {
        code:201,
        data:error,
        msg:'获取失败'
    };
    }

}

```

效果: 部分参数

javascript {"code":200,"slideshow":[{"img":"https://img.***.com/006CXrEjly1hdcdhms3hsj305g05gweg.jpg","type":1,"url":"https://www.***.com/**/417124"},],"msg":"成功"}

以上呢!就是node爬虫的大致方法了。如果你感兴趣的话,可以去尝试以下;

大家在爬取的时候一定不要太多频繁了,切记、切记。大家练习练习技术即可

如果您喜欢我的文章或者该文章对你有帮助,您也可以关注我的公众号:【前端雾恋

往期文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值