好的,为了好玩,我决定抓住所有去大学的用户,他们都是在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标签内的文字,以便将所有文本记录到我的控制台?
答案 0 :(得分:0)
这不是我想要的方式。下面是一个应该帮助你的代码片段,你需要做的就是将它包装在一个循环中并遍历你想要抓取的url。我还建议您查看本教程Scraping the Web With 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;