Как достать элемент со страницы сайта?

Рейтинг: 0Ответов: 0Опубликовано: 12.04.2023

Делаю парсинг сайта с графиком, вся информация хранится в 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')

Ответы

Ответов пока нет.