nodejs爬虫中标签选择的问题

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

第1章 课程介绍

第2章 MyCAT介绍

第3章 MyCAT基础

第4章 课程总结

但是实际却是:
https://img4.mukewang.com/5c91b0af0001076608000380.jpg

出现这样的原因是<strong>标签中有两段文字
https://img1.mukewang.com/5c91b0b10001b06008000279.jpg

我的代码是这样的:

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的标题的时候,发现一个结果都出不来,但是爬取慕课网却还是可以运行的, 如果要爬取亚马逊的话,我该如何做。

谢谢大家的帮助!


qq_遁去的一_1
浏览 482回答 1
1回答

郎朗坤

你可以用先$('strong i').next().remove();去除你不想要的...&nbsp;var&nbsp; $=cheerio.load(html);&nbsp; &nbsp; $('strong i').next().remove();&nbsp; &nbsp; $('strong').each(function(){&nbsp; &nbsp; &nbsp; var x=$(this).text().trim();&nbsp; &nbsp; &nbsp; console.log(x);&nbsp; &nbsp; });...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript