私は、このウェブサイトの記事タイトルとURLを取得する単純なWebスクレーパーを作成しました:http://espn.go.com/college-football/。ただし、スクレーパーはサイトからのすべての記事ではなく、46-50件の記事を返すだけです。私はcheerio
が使用するCSSセレクタを変更しようとしましたが、それが掻く記事の数に関して何も変わりません。ここで私が使用しているコードは次のとおりです。Nodejsを使用したWebスクレイピング
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/test", { native_parser: true });
url = 'http://espn.go.com/college-football/';
function Headline(title, link) {
this.Title = title;
this.link = link;
}
request(url, function (error, response, html) {
if (!error) {
var $ = cheerio.load(html);
var result = [];
// Grab the articles titles/url
$('.text-container h1 a.realStory', '#news-feed-content').each(function (i, elem) {
console.log($(elem).text(), elem.attribs.href);
var articleObject = new Headline($(elem).text(), elem.attribs.href);
result.push(articleObject);
});
}
fs.writeFile('espn_articles.json', JSON.stringify(result, null, 4), function (err) {
console.log('File successfully written! - Check your project directory for the output.json file');
})
db.collection('articles').insert(result, function (error, record) {
if (error) throw error;
console.log("data saved");
});
});
スクロールダウンページは '無限scroll'ロード – charlietfl
@charlietflに基づいて、追加されますか?私はページがオートスクロールすることを知っていますが、記事をスクロールダウンさせる方法を知りたいと思います。 –