废弃Node.js:从H2头中获取文本



好吧,为了好玩,我决定把所有在moodle网站上注册的上我大学的用户都刮下来。

这是我用Node.js和cheerio制作的程序,它可以抓取网站,但我似乎无法获取H2标签中的文本。

这是我正在抓取的网站,http://moodle.ramapo.edu/user/profile.php?id=2101我只需要更改身份证号码,它就会在每个学生身上循环。

     var request = require('request'),
     cheerio = require('cheerio');
     urls = [];
     //For just single page, eventually will loop through each page.
     request('http://moodle.ramapo.edu/user/profile.php?id=2101', function(err, resp, body){
     if (!err && resp.statusCode == 200) {
          var $ = cheerio.load(body);
          $('h2.main', '#yui_3_9_1_2_1410303448188_167').each(function(){
              //Not sure how to retrieve just the text name of person
          });
      console.log(urls);
      };
 });

如何选择H2标记中的文本,以便将所有文本记录到控制台?

我不会这么做。下面是一个代码片段,它应该会帮助你,你所需要做的就是将它包装在一个循环中,并迭代你想要抓取的url。我还建议你看看这个教程用Node.js 刮网

var express = require('express');
var request = require('request');
var cheerio = require('cheerio');
var app     = express();
app.get('/scrape', function(req, res){
  url = 'http://moodle.ramapo.edu/user/profile.php?id=2101';
  request(url, function(error, response, html){
        if(!error){
              var $ = cheerio.load(html);
              var name;
              $('.main').filter(function(){
                var data = $(this);
                name = data.text();
                console.log("name = " + name);
          })
        }
    res.send('Check your console!')
  })
})
app.listen('8081')
exports = module.exports = app;

最新更新