When I use $('.episode-title')
the output I get is
Otona no Bouguya-san S2 — 02Otona no Bouguya-san S2 — 01
The Output I want is
Otona no Bouguya-san S2 — 02 \n Otona no Bouguya-san S2 — 01
How Do I Do this?
const Nightmare = require('nightmare');
const cheerio = require('cheerio');
const url = `https://subsplease.org/shows/otona-no-bouguya-san-s2/`
const nightmare = Nightmare({ show: true })
// Request making using nightmare
nightmare
.goto(url)
.wait('body')
.wait('label.episode-title')
.evaluate(() => document.querySelector('body').innerHTML)
.end()
.then(response => {
console.log(getData(response));
}).catch(err => {
console.log(err);
});
let getData = html => {
const $ = cheerio.load(html);
let title = $('.episode-title').text()
console.log(title)
}
{
"episodes": [
{
"title": "Otona no Bouguya-san S2 — 01",
"torrents": [
{
"resolution": "1080p",
"magnet": "url",
"torrent": "url"
},
{
"resolution": "720p",
"magnet": "url",
"torrent": "url"
},
{
"resolution": "sd",
"magnet": "url",
"torrent": "url"
}
]
},
{
"title": "Otona no Bouguya-san S2 — 02",
"torrents": [
{
"resolution": "1080p",
"magnet": "url",
"torrent": "url"
},
{
"resolution": "720p",
"magnet": "url",
"torrent": "url"
},
{
"resolution": "sd",
"magnet": "url",
"torrent": "url"
}
]
}
]
}
Since you have two elements with class .episode-title
you should use map
or forEach
. Here's one:
let titles = $('.episode-title').map((i, el) => $(el).text()).get();
console.log(titles);
// => ["Otona no Bouguya-san S2 — 02", "Otona no Bouguya-san S2 — 01"]