我正在尝试在http://www.nba.com/gameline/20160507/处找到此标记处的文字
<h4 class="nbaModTopTeamNum win">95</h4>
我正在使用NodeJS和Cheerio但每次我在console.log上都会得到$ .text()我得到一个空行。 这是我的代码:
1 var request = require('request');
2 var cheerio = require('cheerio');
3 var fs = require('fs');
4 request('http://www.nba.com/gameline/20160507/', function(err, res,html){
5 if(!err && res.statusCode == 200){
6
7 var $ = cheerio.load(html);
8 var score = $('h4.nbaModTopTeamNum.win');
9 console.log(score.text());
10 }
11 else console.log('Error reaching host');
12});
答案 0 :(得分:1)
在您指定的网址的原始HTML源代码中,与您的选择器匹配的<div>
为空。它在原始HTML源中没有任何内容。您可以加载该URL,然后在该页面上执行查看/来源,并查看是否属于这种情况。
所以,显然这个div的内容是由在页面中运行的Javascript填充的,其中cheerio可能无法运行。因此,由于您只看到原始来自服务器的原始HTML源代码,因此您没有获得任何内容。
答案 1 :(得分:1)
您应该尝试将phantomJS用于节点,这样您就可以模拟CLI浏览器并使其加载页面,然后您可以使用cheerio来抓取信息......显然,这就是问题所在。这是一些phantomJS示例,因此您可以继续尝试:PhantomJS Scraping example