Как достать элемент со страницы сайта?
Делаю парсинг сайта с графиком, вся информация хранится в svg. Выцепить необходимую инфу на сайте можно только из раздела scipt, там есть список объектов. Мне нужен будет только самый верхний (2 элемента). Все. Сайт обновляется каждые 5 минут, поэтому запрос идет аналогично. Я только учусь Как выглядят данные на сайте:
<script class="starting">
/* комментарий */
var days = [
{"period": "2023-04-09", "Buy": 39 "Purchase": 97}, {"period": "2023-04-10", "Buy": 18, "Purchase": 17}, {"period": "2023-04-09", "Buy": 39, "Purchase": 47}
];
Morris.Line({
element: 'graphics',
data: days,
xkey: 'period',
ykeys: ['Buy', 'Purchase'],
labels: ['Куплено', 'Продано' ]
});
</script>
Я делаю через node.js использовано cheerio
const url = 'адрес сайта';
async function sample() {
const start = await request(url);
let $ = cheerio.load(start);
function trade() {
request(url)
.then((html) => {
$ = cheerio.load(html);
$('.starting')
.each((index, element) => {
const buy = $(element).text();
let res = buy.match(/.+?Buy.+?(\d+).+?Purchase.+?(\d+).+/);
let Buy = Number(res[1]);
let Purchase = Number(res[2]);
console.log(buy);
})
})
.catch((err) => {
console.log(err);
});
}
setInterval(trade, 5 * 60 * 1000);
}
sample();
});
Таким образом получаю ошибку кода:
TypeError: Cannot read properties of null (reading '1')
Источник: Stack Overflow на русском