Очистка с использованием cheerio возвращает пустой массив

Я пытаюсь очистить веб-сайт https://buff.163.com/market/csgo#tab=buying&page_num=1, используя запрос-обещание и приветствие. весь мой код ниже:

const request = require('request-promise');
const cheerio = require('cheerio');

const url = "https://buff.163.com/market/csgo#tab=buying&page_num=1";

const scrapeArr = [];

async function scrape() {
    try {
        const htmlResult = await request.get(url);
        const $ = await cheerio.load(htmlResult);
        
        $(".card_csgo li")
            .each((i, e) => { 
                const title = $(e).children("h3").text() 
                const link = $(e).children("a").attr("href")
                const scrapeObj = { title , link }
                scrapeArr.push(scrapeObj)
            })
            console.info(scrapeArr);
    } catch(e) {
        console.info(e)
    }
}

scrape()

это приводит к пустому scrapeArr. Команды jQuery отлично работают в консоли инструментов chrome dev, но когда я копирую и вставляю ту же команду в cheerio, это приводит к пустому массиву. может кто-нибудь сказать мне, в чем проблема здесь?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы откроете исходник страницы, вы увидите, что таких DOM-элементов в HTML нет. Они генерируются браузером во время выполнения, поэтому для их рендеринга вам нужен полноценный браузер (а не необработанный сетевой запрос + cheerio).

Хорошей новостью является то, что на этом веб-сайте есть скрытый API, который вам лучше использовать для извлечения необходимых вам данных, просто используйте Chrome Dev Tools, чтобы обнаружить его: https://thewikihow.com/video_kPe3wtA9aPM

Другие вопросы по теме