Node实现穷人版小爬虫

    在Node中使用核心模块http和第三方模块cheerio实现穷人版网页小爬虫,以“深圳市住房公积金管理中心-信息公开”网站为例。

    目标网页如下:

《Node实现穷人版小爬虫》

    目标网页数据的dom结构如下:

《Node实现穷人版小爬虫》

    示例代码如下:

var http = require("http");
var cheerio = require("cheerio"); //类似JQ的第三方模块
var url = "http://www.szzfgjj.com/xxgk/tjxx/"; //深圳市住房公积金管理中心-信息公开

//爬取网页数据
http.get(url, res => {
    var html = "";
    res.on("data", data => html += data);
    res.on("end", () => {
        // console.log(html);
        var crawlData = filterData(html);
        printData(crawlData);
    });
}).on("error", () => {
    console.log("some error occured");
});

//过滤数据
function filterData(html){
    var $ = cheerio.load(html); //装载dom
    var crawlData = []; //存储爬虫数据
    var lis = $(".MLlist").find("ul>li");
    lis.each(function(){
        var li = $(this);
        var obj = {
            title: li.attr("svalue"),
            addr: li.children("a").attr("href").split("/")[1],
            id: li.children("a").attr("id")
        }
        crawlData.push(obj);
    });
    return crawlData;
}

//输出数据
function printData(crawlData = []){
    crawlData.forEach(item => {
        console.log(`题目:${item.title}  --  地址:${item.addr}  --  编号:${item.id}`);
    });
}

    终端输出如下:

《Node实现穷人版小爬虫》

    原文作者:他油
    原文地址: https://segmentfault.com/a/1190000013249330
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞