如何从像hungama或saavn这样的音乐网站中删除热门歌曲名称

时间:2017-09-06 12:14:33

标签: javascript node.js npm web-scraping

我的需求是从像这样的Hungama或saavn获得最热门的歌曲/专辑名称。我使用了来自npm的网络报废包,并试图从网站检索数据。提到了许多软件包,如cheerio,jsdom,request等。最后找到了一个名为" osmosis"的简单软件包。这是我使用渗透的代码。

const osmosis = require('osmosis');

osmosis
    .get('http://www.hungama.com/all/top-songs-51/21825/')
    .find('.listing div.block-cont div.song div.song-name')
    .follow('h4')
    .log(console.log)

这将返回如下输出:

(get) loaded [get] http://www.hungama.com/all/top-songs-51/21825/  
(find) found 12 results for ".listing div.block-cont div.song div.song-name" 
(follow) url: 

                                            Mersal Arasan                                        
(follow) url: 

                                            Yaanji                                       
(follow) url: 

(follow) loaded [get] http://www.hungama.com/all/top-songs-51/21825/Mersal%20Arasan  
(follow) loaded [get] http://www.hungama.com/all/top-songs-51/21825/Yaanji  

但我只需要输出歌曲名称。在使用像cheerio这样的其他软件包时,如何在查找时提及我的特定数据类(比如如何提及" div.listing div.song div.song-name h4")。有没有其他简单的方法来进行此操作。请帮我解决问题。

1 个答案:

答案 0 :(得分:0)

试试这个:

const osmosis = require('osmosis');

osmosis
    .get('http://www.hungama.com/all/top-songs-51/21825/')
    .find('div.song-name')
    // ^^^^^ assuming this is the css selector for the song name
    .set('songName')
    .data(function(names){
            console.log(names); // display the list of songName sa object.
         })
    .log(console.log)
    .error(console.log)
    .debug(console.log)