nodejs完成简易爬虫

``

   const http = require('https');     // https和http用法类似
   const fs = require('fs'); 
   const cheerio = require('cheerio');    // 需要npm安装
   
   let path = 'https://v.qq.com/';
   let url = 'http://nodejs.cn/api/';
    
   http.get(path, (res) => {

       const { statusCode } = res;
       const contentType = res.headers['content-type'];

       var err;
     
       if (!statusCode) {
           err = new Error("状态错误");
       } else if (!(/^text\/html/.test(contentType))) {
           err = new Error("类型错误");
       }

      if (err) {
          console.log(err);
          res.resume();     // 防止缓存
          return;
      }

      var data = ''

      res.on('data', (chunk) => {
          data += chunk.toString('utf8')    // nodejs是将超过指定大小的文件一块一块的传输
       });

      res.on('end', () => {
          fs.writeFileSync('./slider.html', data)    // 写入到一个文件中
          const $ = cheerio.load(data);    
          $('img').each((index, elm) => {
              console.log($(elm).attr('src'));
          })
      })
   }).on('error', (err) => {
        console.log(err);
   })

``

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值