鍍金池/ 問答/HTML/ nodejs爬蟲中標簽選擇的問題

nodejs爬蟲中標簽選擇的問題

一直以來非常感謝各位的幫助。
寫了一個簡單的爬蟲,目的是把慕課網課程的章節(jié)抓取下來。
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);
    });
  });
});

如何把后面那段介紹文字去掉。只留一個大章節(jié)的標題。
text()取得文本數據的時候,如何才能讓文字前面的空格和換行都去掉。

另外我是做電商運營的,我用這個去爬取亞馬遜排行top100的標題的時候,發(fā)現一個結果都出不來,但是爬取慕課網卻還是可以運行的, 如果要爬取亞馬遜的話,我該如何做。
謝謝大家的幫助!

回答
編輯回答
孤酒

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

...
 var  $=cheerio.load(html);
    $('strong i').next().remove();
    $('strong').each(function(){
      var x=$(this).text().trim();
      console.log(x);
    });
...
2017年2月14日 13:48