被查询的元素有空的 text() 和空的 html()

问题描述

如何获取元素的内容?我试过用这个

let $ = cheerio.load(response);

let products = $('.product-tile__title');

console.log(products.first().html()); // prints null to console

一个类名为“product-tile__title”的元素列表,我想获取元素中的文本。它们位于 h4 标题元素中,可能会有所不同。

元素 HTML:

<h4 class="ais-hit--title product-tile__title">HP 15-EQ1048AU 15.6" HD Laptop (256GB)</h4>

代码

var app = express();

app.get('/test',function(req,res) {
    
    const options = {
        url: `https://www.jbhifi.com.au/collections/computers-tablets/windows-laptops`,headers: { 'User-Agent': 'Request-Promise' }
    }

    request(options)
        .then((response,body) => {
            process.stdout.write('testing 123');
            console.log('testing console logger');

            let $ = cheerio.load(response);

            //let products = $('.product-tile__title');

            let arr = $('.product-tile__title').toArray().map((x) => { return $(x).html()});
            for (let i = 0; i < arr.length; i++) {
                console.log(arr[i]);
            }
            console.log(arr.length); // 0

            $('.product-tile__title').each((i,element)=>{
                var omg = $(element).html();
                console.log(omg);
            });

            console.log(response);
            res.write(response);
            res.write('request complete');
            res.end();
        })
        .catch((err) => {
            console.log('error in request');
            console.log(err);
        })

})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)