Страница https://lyrics.lyricfind.com/lyrics/procol-harum-a-whiter-shade-of-pale включает в себя JSON в теге
<script id="__NEXT_DATA__" type="application/json">
Структура JSON такая:
{
"props": {
"pageProps": {
"songData": {
"response": {
"code": 101,
"description": "SUCCESS: LICENSE, LYRICS"
},
"track": {
"lfid": "002-881192",
"language": "en",
"rovi": "MT0000108280",
"gracenote": "GN0K05NH2AB4K0M",
"apple": 1440671809,
"deezer": 18167615,
"spotify": "03x2itbo74uxfsrokh27ff",
"isrcs": [
"ES5621904215"
],
"instrumental": false,
"viewable": true,
"has_lrc": false,
"has_contentfilter": true,
"has_emotion": true,
"has_sentiment": true,
"title": "A Whiter Shade of Pale",
"artists": [
{
"name": "Procol Harum",
"lfid": "lf:22747",
"slug": "procol-harum",
"is_primary": true
}
],
"artist": {
"name": "Procol Harum"
},
"last_update": "2023-01-01 00:00:00",
"lyrics": "We skipped the light fandango...
Из консоли Chrome пробую извлечь lyrics:
// извлечь JSON из HTML-DOM
let rawJSON = document.getElementById("__NEXT_DATA__").textContent;
console.log(rawJSON); // получается успешно
// получить многомерный массив с JSON-деревом
let objJSON = JSON.parse(rawJSON);
console.log(objJSON); // получается успешно
// получить текст из элемента
let lyrics = objJSON.props.pageProps.songData.track.lyrics;
console.log(lyrics);
На последнем шаге получаю ошибку:
ncaught TypeError: Cannot read properties of undefined (reading 'track') at <anonymous>:5:47
Что здесь не так?