Nodejs簡易爬虫類

1082 ワード

Nodejsで爬虫類を作成するのは他の言語と同じように簡単で、各言語の標準ライブラリを比較するのは多くありません.主にページをキャプチャし、domノードを分析し、データを取得します.
requestsの古典的なリクエストライブラリ、cherrioはjqueryのようにdomのライブラリを解析します.ここではcsdnを例に挙げる.
var request = require('request');
var promise = require('bluebird');
const cheerio = require('cheerio');
const baseUrl = "https://blog.csdn.net/ghostyusheng/article/list/";

function startReq(url) {
    return new Promise(function (resolve, reject) {
       let titles = []; 

        request(url, function (error, response, body) {
            const $ = cheerio.load(body);
            const data = $('h4 > a');
            
            data.map((k) => {
                const title = data[k].children[0].next.next.data;
                titles.push(title);
            })

            resolve(titles);
        });

    });
}

for (let i = 1; i < 10; i++) {
    const url = baseUrl + i;
    promise
        .all(startReq(url))
        .then(function(titles) {
            console.log('scrawl complate!', titles);
        })
}