我的需求是从像这样的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")。有没有其他简单的方法来进行此操作。请帮我解决问题。
答案 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)