0

わかりましたので、楽しみのために、私の大学に通う、ウェブサイトのムードルにサインアップしているすべてのユーザーをスクレイピングすることにしました。

Node.jsとcheerioで作ったサイトをスクレイピングするプログラムですが、H2タグ内のテキストが取得できないようです。

http://moodle.ramapo.edu/user/profile.php?id=2101 必要なのは、ID 番号を変更するだけで、すべての学生をループします。

     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 タグ内のテキストを選択して、それらすべてをコンソールに記録するにはどうすればよいですか?

4

1 に答える 1

0

それは私がそれについて行く方法ではありません。以下はあなたを助けるはずのコードスニペットです。あなたがする必要があるのは、それをループでラップし、スクレイピングしたいURLを反復することだけです. また、このチュートリアルをチェックすることをお勧めしますNode.js を使用した Web のスクレイピング

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;
于 2014-09-15T23:12:17.490 に答える