nodejs爬虫中标签选择的问题

一直以来非常感谢各位的帮助。
写了一个简单的爬虫,目的是把慕课网课程的章节抓取下来。
url是:https://www.imooc.com/learn/951
代码可以顺利的运行,但我的理想结果是如下:

第1章 课程介绍
第2章 MyCAT介绍
第3章 MyCAT基础
第4章 课程总结

但是实际却是:
图片描述

出现这样的原因是<strong>标签中有两段文字
图片描述

我的代码是这样的:

const http=require('https');
const fs=require('fs');
const cheerio=require('cheerio');

const url='https://www.imooc.com/learn/951';

http.get(url,function(res){
  var html='';
  var titles=[];
  res.setEncoding('utf-8');

  res.on('data',function(chunk){
    html+=chunk;
  });
  res.on('end',function(){
    var  $=cheerio.load(html);
    $('strong').each(function(){
      var x=$(this).text().trim();
      console.log(x);
    });
  });
});

如何把后面那段介绍文字去掉。只留一个大章节的标题。
text()取得文本数据的时候,如何才能让文字前面的空格和换行都去掉。

另外我是做电商运营的,我用这个去爬取亚马逊排行top100的标题的时候,发现一个结果都出不来,但是爬取慕课网却还是可以运行的, 如果要爬取亚马逊的话,我该如何做。
谢谢大家的帮助!

阅读 2.5k
1 个回答

你可以用先$('strong i').next().remove();去除你不想要的

...
 var  $=cheerio.load(html);
    $('strong i').next().remove();
    $('strong').each(function(){
      var x=$(this).text().trim();
      console.log(x);
    });
...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题