首页 > 解决方案 > 为什么我总是得到 Null?

问题描述

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

request('https://www.ratemyprofessors.com/ShowRatings.jsp?tid=1985428', (error, response, html) => {
    if(!error && response.statusCode ==200){
        //console.log(html);
        const $ = cheerio.load(html); 
        
        const profTopComment = $('.Comments__StyledComments-dzzyvm-0 dvnRbr');
        
        console.log(profTopComment.html());
    }
});

我正在尝试创建一个 chrome 扩展来从 RatemyProffessor 中抓取数据,但是当尝试从上面的 url 中抓取最有意义的评论时,我一直得到空值,任何帮助都会很棒!

当我说“获取 Null”时,我的意思是 console.log(profTopComment.html()) 在终端中给了我 null 。

我正在尝试获取最有用的评分。

标签: javascriptnode.jsweb-scrapingcheerio

解决方案


  • '.Comments__StyledComments-dzzyvm-0.dvnRbr'第二个"."是需要寻找具有不同类的<div></div>元素two
  • 基本上只是在您的代码中更改'.Comments__StyledComments-dzzyvm-0 dvnRbr'为。'.Comments__StyledComments-dzzyvm-0.dvnRbr'

例子:

const axios = require('axios');
const cheerio = require('cheerio');

async function testFunc() {
  const result = await 
  axios.get('https://www.ratemyprofessors.com/ShowRatings.jsp?tid=1985428');
  const $ = cheerio.load(result.data);
  const profTopComment = $('.Comments__StyledComments-dzzyvm-0.dvnRbr');
  console.log(profTopComment.html());
}
testFunc();

推荐阅读